如果标题的术语不正确,请原谅我,我描述的是一个中间表,它可以在 2 个或多个表之间建立一种多对多的关系。
在这种情况下,单个表包含适用于其他不一定相互关联的表的数据。
具体是一个网站:
- 表 Pages 中的页面 A 和 B 属于站点 1。
- 表用户中的用户 A 也属于站点 1,但用户 B 属于站点 2
所以此刻的中间表是这样的:
id | site | page | user
-----------------------
1 | 1 | A | null
2 | 1 | B | null
3 | 1 | null | A
4 | 2 | null | B
尽管这似乎成为许多问题的原因,但系统将得到完全规范化的数据库的支持,例如删除用户将删除矩阵中与其关联的任何记录,更新也会级联。
我知道这里的数据量可能会很高,这就是为什么它只用于链接包含 5-200 条记录的引用表。海量记录表(例如包含数千条记录和增长的帖子或媒体)连接到站点将被展平并直接存储站点 ID。
最后,我需要这样的解决方案的原因是因为我需要将元素分配给可自定义数量的站点,否则唯一的选择是:1 个站点、所有站点或没有站点。
所以我的问题是,这是一种有效的方法吗?