(我正在学习Oracle SQL)
我想声明一个类型,将其可能的值限制为只有一些选择。这是什么最好的做法?
我一直在搜索很多东西而一无所获。这是任何类型代码的基本功能,因此它应该已经是一个已解决的问题。也许有一个共同的模式来解决它。
看起来Oracle SQL不允许对类型进行约束(既没有域名)
我不想在每个使用该类型的表上复制约束代码,因为这会为每个表复制一次代码,并且这对任何语言都是错误的编码实践。
请添加一个例子。
答案 0 :(得分:0)
如果您正在考虑限制可以进入某些表的字段的值,则可以为这些值创建引用表。然后,包含值的表可以使用引用的外键,将它们限制为仅引用表中的值。
示例:
桌面类型:
+---+--------+
|ID |Type |
+---+--------+
|1 |Grass |
|2 |Tarmac |
|3 |Concrete|
乒乓球场
+--------+------+----------+
|CourtID |Adress|GroundType|
+--------+------+----------+
| 1 |locat | 2 |
| 2 |locat | 3 |
| 3 |locat | 1 |
桌上篮球场
+--------+------+----------+
|CourtID |Adress|GroundType|
+--------+------+----------+
| 1 |locat | 3 |
| 2 |locat | 2 |
| 3 |locat | 2 |