我正在设计一个医生办公室和药房的数据库模型,并要求存储有关客户和患者的数据,客户是在药房购买的人和看病的病人一样,顾客可以同时耐心等待。如何处理这种情况?如果我为每个实体创建一个实体,那么一个人就有可能在两个桌子上。有什么建议?
答案 0 :(得分:2)
两种方法:
一个叫做人员表的表,有'is_customer'和'is_patient'文件可以是真/假
三个表,一个用于存储具有唯一ID的所有相关数据(姓名,地址,电话号码等)的人,一个用于患者的表,其仅是一个唯一ID的表和对该表的引用人员表和一个客户表,它只是一个唯一ID表和人员表的引用。
答案 1 :(得分:2)
如果客户和患者的数据完全相同,您可以拥有一个包含个人信息的表和一个type
列,可以是一个位或整数。此type
列将告诉您该记录是针对患者还是客户。我没有看到患者作为一个大问题的案例的重复记录,但如果你想避免这种情况,你将不得不创建一个链接表。类似的东西:
person
(id, name, address, ...)
和
person_type( person_id, type_id)
同时是客户和患者的人将在此表中有2个条目;每个type
(客户/患者)一个。