想象一下,我有这些实体:Folder
,Group
,Document
。
现在,每个Folder
都有Document
个Document
,这些Group
可以Folder
或Folder
内Document
1}}。
因此,Document
将同时包含已分组和未分组的Group
。
我将如何构建这种关系?
我在考虑两种方式:
Group
属于Folder
,Group
属于Folder
。这个
要求我总是有一个" ungrouped"每Document
Folder
Group
(真的很难看。)Group
同时属于Folder
和Folder
,Group
属于
group_id
。这样我就可以参考Document
和。{
Group
,其中Folder
可以为null以表示"未组合"。
但是,通过为a分配Group
,这会打开错误的大门
Folder
/ Document
,{{1}}不属于{{1}}。两种解决方案似乎都没有。这可能需要某种复合键,而{{1}}会引用它。
这样做的正确方法是什么?
答案 0 :(得分:0)
我希望您的第二种方法能够让您在实际应用中遇到最少的麻烦。虽然它可能取决于实际应用的具体情况。
另一种选择是让不的组属于文件夹(因为它不是明确的要求),因此相同的group_id
可能跨越各种文件夹。然后,您将在(folder_id, group_id)
表中将一对Document
解释为实际的组标识符。