非唯一的外键Oracle?

时间:2015-01-15 12:20:47

标签: sql database oracle foreign-keys

我有两个表,为简单起见,数据/模型是假的:

表A:

Order ID       Delivered
1              Y
2              N
3              Y

并且

表B:

Order ID       Customer ID    
1              123
1              234
1              455
2              789

订单ID是表A中的主键,我想在表B中将其用作外键。 鉴于表B中的订单ID不是唯一的,这是否可以接受?

请忽略任何规范化/结构性问题,我的问题只是你是否可以拥有一个非唯一的外键,我只是觉得插图有帮助..

谢谢, Dearg

1 个答案:

答案 0 :(得分:2)

  

这是否可以接受,因为表B上的订单ID不是唯一的?

是的,绝对的。这是建立1:多关系的标准方法

但您应该找到TableB的主键。如果客户不能分配到多个订单,那么使用(order_id,customer_id)作为PK是有意义的。