我有一个项目列表,项目可以由一个人或一组人拥有。你会如何设计这个数据库?个人和团体所有权
到目前为止,我有3个表,如:
人:
personID (primarykey)
personName
personAddress
...
组:
groupID (primarykey)
groupNumber
personID
项目:
itemID (primarykey)
itemName
itemDescription
itemWeight
...
你将如何去分配项目的所有权给个人或特定组?
我确实有这个项目上的2个字段,owner_personID
和owner_groupID
,但似乎挺有趣,而且必须手动管理一次使用哪个字段。
我还尝试了两个链接表,PeopleOwnerships
和GroupOwnerships
,它们存储所拥有的物品列表。字段类似于personID/groupID
和itemID
。但是,似乎更加笨拙,可能会变得混乱。必须格外小心,以免个人和团体同时拥有相同的物品。
我也想过把所有的人都放在他们自己的个人群体中,只是使用群组表格来指代一切。但是这似乎也有点奇怪。
当所有权发生变化时,我还需要记录人员和组之间的项目转移。我想过在链接表中有一个日期字段,并使用最高日期来确定谁拥有什么。