首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Oracle10中创建表时,定义"ENUM“数据类型的最佳方式是什么?

在Oracle10中创建表时,定义"ENUM“数据类型的最佳方式是什么?
EN

Stack Overflow用户
提问于 2010-09-20 03:15:50
回答 1查看 588关注 0票数 0

例如:我想要一个名为season (= {春、夏、秋、冬})的数据类型

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-09-20 03:18:25

  1. 定义了一个season表,它有两列:season_idseason_name

CREATE TABLE“foreign”( "SEASON_ID“NUMBER NOT NULL ENABLE,"SEASON_NAME”VARCHAR2(6字节) NOT NULL ENABLE,约束"SEASON_PK“PRIMARY KEY ("SEASON_ID") )

  • 向记录需要季节标识的表添加season_id列,并创建到season

的外键关系

CHECK约束是下一个选项,但如果您想要使用多个表中的值,因为它们不能集中管理,那就太糟糕了。触发器也是一种选择,但在这种情况下,与CHECK约束相比,触发器更像是一门杀死蚊子的大炮……

哪一个是最好的?

引用sql_mommy的话:

具有外键关系的单独的表是最好的。

它是管理所需类型的单一位置,并且它很灵活,因此您可以根据需要进行加/减值或编辑。这也有助于建立良好的索引。以防你认为“但是这个枚举的内容永远不需要编辑”--根据我的经验,所有的数据类型最终都会变形。例如,如果您有一个月份列表,以后可能会添加月份的各种缩写或与这些月份相关的业务关联。使用数据库的关系结构提供了最大的灵活性和最简单的可维护性。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3747105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档