使用 cakephp,我有一个通用地址表,我想将其链接到客户、供应商和联系人。大多数表只有 1 对 1 的关系,但我希望我的客户表有 2
也许是为了澄清: 我有一张客户表
id, int
mailing_address_id, int
billing_address_id, int
和地址表
id,int
addr, varchar
city, varchar
etc....
现在我知道我可以将 customer_id
放入地址表中。但我不想这样做,因为我有供应商表、联系人表和其他所有将使用地址表的表。 customer_id
不会真正与其他表相关。
我希望 Customer 模型自动链接这两个地址
最佳答案
听从 Travis Leleu 的建议 - 因为无论如何这是个好主意。
然后将枚举字段添加到名为 table_id
的 Addresses
表中。 table_id
字段的值可以是“customer”、“vendor”、“contact”以及链接到地址表的任何其他表。
还包括一个名为 entity_id
的外键。此外键将是相应客户、供应商或其他任何内容的主键。
例如,当您想要某个供应商的账单地址时,在 $conditions
数组中添加:
'Address.entity_id'=>'123456'
'Address.table_id'=>'vendor'
'Address.type'=>'billing'
使用此设置,您可以根据需要引用 Addresses
表来拥有任意数量的表。
关于php - 如何在一个表中使用多个外键引用 cakephp 中的另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/655068/