复合外键引用一列或多列

时间:2012-11-05 04:12:02

标签: mysql sql database-design foreign-keys composite-key

我有一张桌子(tableA)连接其他3张桌子,主键是“车辆”,“引擎”,“传输”我希望能够将部件分配给其中一个或多个,例如“只有这辆车”或“只有这种带有这种发动机的车辆”或“任何带有这种发动机的车辆”

我的计划是有一个零件表(tableB),还有主键'vehicle','engine','transmission',我希望能够插入例如:

  • 4844, null, null仅为“车辆”或
  • 分配零件
  • 4844, 240, null将一部分分配给“仅此车辆使用此引擎”。

是否有某种方法可以在数据库级别强制执行完整性。

  1. tableB中填写的字段必须引用tableA中的字段。
  2. 必须填写至少一个字段。
  3. 该选项是否存在不将数据全部插入其中?

1 个答案:

答案 0 :(得分:0)

  1. 阅读数据模型模式。有几本好书(干草,捕鸟人,银子,布拉哈)和干草盖好这种东西

  2. 如果你想做这类东西,请使用像postgres这样的真实数据库,它有检查限制。对于您的问题2和3,这可以通过检查轻松解决。