我在这个论坛上发现了类似的问题,但其中任何一个都可以让我想到一个解决方案,所以我认为有人可以知道答案。
我有这个数据库场景:
商品、供应商和订单。这些是表,我还有另外两个表:orders_merchandises 和suppliers_merchandises。
这些表是这样的:
merchandises
-id
-name
suppliers
-id
-name
orders
-id
-supplier_id
orders_merchandises
-order_id
-merchandise_id
suppliers_merchandises
-supplier_id
-merchandise_id
规则是:
供应商只能提供他们能够提供的商品。所以,我有表suppliers_merchandises 来为每个供应商注册他们提供给商店的商品。
因此,订单必须限制供应商仅提供在供应商商品中“预先记录”的商品。
我希望我能解释得足够清楚。
所以,我需要多个表的外键,如下所示:
ALTER TABLE suppliers_merchandises
ADD FOREIGN KEY FK_NAME (supplier_id, merchandise_id)
REFERENCES (orders.supplier_id, orders_merchandises.merchandise_id)
但是,不幸的是,这不起作用。
任何人都知道是否有任何方法可以做我想做的事?
它可以在任何 dbms 中。SQLServer、Firebird 或任何其他