所以我有三张桌子,后来还有三张牌子:
Company (table: companies)
Person (table: people)
Address (table: addresses)
如何将这些连接在一起,考虑到每个人或公司可以有多个地址,但由于地址格式相同,我想使用一个“地址”表,因此可以完成交易/管理地址通过一个模型?
因为这个结构:
companies(id, name, ...)
people(id,name, ... )
addresses(id, foreign_id, foreign_model, ...)
对我来说似乎有点不合适。基本上这是现在的结构。 'foreign_model'字段是一个字符串,它指定地址所属的模型(即公司或人)。
所有这一切都在Cakephp下,但我对这个结构有很多问题,我该怎么用呢?
答案 0 :(得分:1)
这是怎么回事:
companies(id, name, address_id,..)
people (id,name, address_id,... )
addresses(id,... )
公司和人都指向地址表的地址。 在这里你不必存储任何重复的地址(如果有的话)
编辑:如果公司和人都可以拥有多个地址
然后保留映射表
companies(id, name,..)
people (id,name, ... )
addresses(id,... )
Address_map(id,address_id,type)
类型说明是公司还是人民
id - >无论是公司还是诗人