mysql tabel在多个关系之间
-
21-12-2019 - |
题
以下是我的两个表的结构(斜体文本中粗体键和外键的主要键)
service_agreements( id ,client_id,金额,date_begin,持续时间,* services_id_1 *,* services_id_2 *,* services_id_3 *,* services_id_4 *) 服务( id ,date_provided,description,subdy_person)
表背后的想法是根据协议,公司提供最多四次的服务。 因此,Service_AgreementS表(Services_ID_1,...)的四个字段具有四个与服务表(ID字段)的单独关系。 在我看来有点不寻常,因为通常我只看到了两个表之间的一种关系。 SO.I知道这是否是不寻常的,如果它是不寻常的,如果它是更好的解决方案(而不将服务字段合并到SERVICE_AGREEMENTS。因为服务表也在没有协议的情况下提供的服务。/ p>
解决方案
结构甚至可以更好:
service_agreements( id ,client_id,金额,date_begin,持续时间);
服务( id ,date_provided,description,sydub_person);
service_agreemens_services( id ,in in enum(service1,service2等), service_agreement_id , service_id );
新表, service_agreements_services 在service_agreement和services之间添加许多关系;
优点:
1)对于您提供的每一个新服务,都会有新的插入(通常比更新的开销不那么少)
2)你甚至可以提供更大的服务:)
3)表关系变得更容易。
感谢