与同一实体mysql的一对一和一对多关系

时间:2014-02-14 09:39:26

标签: mysql sql relational-database one-to-many entity-relationship

我有两个实体发票用户。 发票与用户有以下关系

  1. 发票拥有所有者(一对一与用户的关系)
  2. 一张发票可以与多个用户共享,这意味着发票可以有多个共享用户(一对多与用户的关系)
  3. 如何在mysql数据库中映射这些关系?多少桌子?和表结构?

2 个答案:

答案 0 :(得分:0)

发票可以有两个字段,billed_to和payed_by。你的billed_to字段将是你的一对一关系,而payed_by字段将是你的一对多关系。

答案 1 :(得分:0)

对于一对一的关系,建议不要保留单独的表格。保留发票表本身。

对于一对多关系,请保留另一个映射表。

您的表格结构应为

Users
----------
id  | xxx | .....

-

Invoices
------------
id  | user_id | .....

在上述情况下,user_id是所有者。

shared_invoices
-------------------
id | user_id | invoice_id
相关问题