0

这是我的两个表的结构(粗体的主键和斜体文本的外键)

service_agreements(id,client_id,金额,date_begin,持续时间,*services_id_1*,*services_id_2*,*services_id_3*,*services_id_4*)服务(id,date_provided,描述,staff_person)

表格背后的想法是,根据协议,公司最多提供四次服务。由此可见,service_agreements 表的四个字段(services_id_1,...)与服务表(id 字段)有四个一对一的独立关系。在我看来这有点不寻常,因为通常我只看到两张表之间的一种关系。所以。我知道这是不寻常的还是可以的,如果不寻常,什么是更好的解决方案(不将服务字段合并到 service_agreements。因为服务表也有一些关于未经协议提供的服务的记录。)

4

1 回答 1

0

结构可能会更好:

service_agreements(id,client_id,金额,date_begin,持续时间);

服务(id,date_provided,描述,staff_person);

service_agreements_services( id , type enum(service1,service2 etc), service_agreement_id , service_id );

新表,service_agreements_services增加了 service_agreement 和 services 之间的多对一关系;

优点
1)对于您提供的每项新服务,都会有新的插入(通常开销比更新少)
2)您甚至可以提供更大的无服务:)
3)表关系变得更容易。

谢谢

于 2014-02-26T18:35:28.163 回答