adu*_*pid 5 mysql erd database-design
抱歉,如果这不是常态,但我正在寻求有关“狗救援/领养”数据库设计的建议。
我已经完成了规范化研究,这是我第一次尝试数据库设计。任何提示/反馈/批评?
最棘手的部分是处理狗/用户/组织并代表谁拥有狗。
一只狗可以属于一个组织。一个组织可以有多个组织用户。想想动物收容所/磅
狗可以属于组织用户。想想一个人的乐队,他们拥有一次容纳多只狗的大房子
狗可以属于单个用户,不隶属于任何组织。认为有人搬到海外,他们需要为他们的狗找一个新主人
因此,dog 表必须附有组织 ID 或用户 ID,或两者兼有。也许是一个触发器,说明一个人必须不为空。
您可以让组织、用户和位置都引用一个公共表,该表代表可以成为狗的主人的事物。然后狗可以有一个对该表的引用。这是一个解释图。
如果不清楚,dog.owner_id 引用 can_own_dog.can_own_dog_id。每个 can_own_dog 外键在其表中都是唯一的,理想情况下在所有三个表中都是唯一的。
我不确定您是否熟悉面向对象编程,但其想法类似于实现单个接口的多个类。
另一方面,您的图表显示“用户可以有多个位置”和“狗可以有多个位置”。我认为这些意思是说“位置可以有很多用户”和“位置可以有很多狗”?