Mysql 参考两个相互关联的表
假设我有以下实体:Mysql 参考两个相互关联的表,mysql,sql,relational-database,Mysql,Sql,Relational Database,假设我有以下实体:文件夹,组,文档 现在,每个文件夹都有许多文档,这些文档,在文件夹内可以有一个组,也可以没有 因此,文件夹将同时包含分组和未分组的文档 我将如何构建这种关系 我在想两种方法: 文档属于组,组属于文件夹。这 要求我始终为每个文件夹 (真难看) 文档属于文件夹和组,组属于 文件夹。这样我就有了对文件夹的引用和 Group,其中Group\u id可以为空以表示“未分组”。 但是,通过将文档分配给 组/文件夹,其中组不属于该文件夹 这两种解决方案似乎都不对。这可能需要某种复合键,文档
文件夹
,组
,文档
现在,每个文件夹
都有许多文档
,这些文档
,在文件夹
内可以有一个组
,也可以没有
因此,文件夹
将同时包含分组和未分组的文档
我将如何构建这种关系
我在想两种方法:
文档
属于组
,组
属于文件夹
。这
要求我始终为每个文件夹
(真难看)
文档
属于文件夹
和组
,组
属于
文件夹
。这样我就有了对文件夹的引用
和
Group
,其中Group\u id
可以为空以表示“未分组”。
但是,通过将文档
分配给
组
/文件夹
,其中组
不属于该文件夹
文档将引用它
这样做的正确方法是什么?我希望您的第二种方法在实际应用程序中给您带来的麻烦最少。尽管这可能取决于实际应用程序的具体情况
另一种选择是让组不属于文件夹(因为这不是明确的要求),这样相同的组id
可能跨越不同的文件夹。然后,您会将一对(folder\u id,group\u id)
解释为文档
表中的实际组标识符。我实际上不希望组跨越多个文件夹,忘了提到这一点。我使用了第二种方法,验证应用程序中的关系。