Oracle SQL。有没有办法约束一个类型?

时间:2017-06-02 15:12:22

标签: sql oracle

(我正在学习Oracle SQL)

我想声明一个类型,将其可能的值限制为只有一些选择。这是什么最好的做法?

我一直在搜索很多东西而一无所获。这是任何类型代码的基本功能,因此它应该已经是一个已解决的问题。也许有一个共同的模式来解决它。

看起来Oracle SQL不允许对类型进行约束(既没有域名)

我不想在每个使用该类型的表上复制约束代码,因为这会为每个表复制一次代码,并且这对任何语言都是错误的编码实践。

请添加一个例子。

1 个答案:

答案 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        |