0
我在基于MySQL的Web应用程序 - 客户,服务和备注中有三个实体。每个客户可以有不同用户发布的多个笔记。同样,一个服务也可以有多个注释。我想将所有笔记存储在一张表格中以便于检索。基本上,查询比插入/更新这些表有很多。涉及多个实体时的数据库建模
下面是数据库模式:
Table: Customer
id - integer
name - varchar
status - varchar
Table: Service
id - integer
name - varchar
status - varchar
price - float
Table: Note
id - integer
note - text
author - integer
type - varchar
cdate - datetime
我已经准备了两种方法建立这些表之间的关系:
Approach #1
Table: CustomerNote
id - integer
customer_id - integer (References Customer table)
note_id - integer (References Note table)
Table: ServiceNote
id - integer
service_id - integer (References Service table)
note_id - integer (References Note table)
第二种方法是修改注表保存实体名称和记录的ID。这种方法不使用方法#1
Approach #2
Table: Note
id - integer
note - text
author - integer
type - varchar
cdate - datetime
entity - varchar (possible values are Customer and Service)
entity_id - integer (related to id in the corresponding entity)
第二种方法不需要任何额外的表中提到的关系,但它并不容易执行外键关系。正如我前面所说,查询比插入/更新更多。那么在那种情况下哪一种会更理想和更高效?
如果我们实施严格的外键关系,我还想知道是否有任何性能问题。