如果标题的术语不正确,请原谅我,我所描述的是一个中间表,它启用了2个或多个表之间的多对多关系。SQL表格矩阵
在这种情况下,单个表保存的数据适用于其他不一定相互关联的表。
具体的位点:
- 页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
尽管呈现开放g成为许多问题的原因,系统将通过数据库被完全标准化来支持 ,例如删除用户将删除 与矩阵相关联的任何记录,更新也将级联。
我知道这里的数据量可能会相当高,这就是为什么它只能用来链接包含5-200条记录的参考表。大量记录表格,例如包含数千个记录的越来越多的连接到网站的帖子或媒体将被平铺并直接存储网站ID。
最后,我需要这样的解决方案的原因是因为我需要将元素分配给可定制数量的网站,否则唯一的选择是:1个网站,所有网站或没有网站。
所以我的问题是,这是一个有效的方法?
我必须告诉你,这张表会让你的系统**不被正常化。它正在引发你的问题。您可以正确地规范化您的数据库并满足您列出的要求。 –
那么你会怎么做呢?
编辑:http:// sqlrelationship。com/many-to-many-relationship/
好吧,它叫做联结表。在网站上的例子与我尝试过的方式一样,除了我已经使它适用于用户和页面,所以我应该把它分成两个表格? – Flosculus
我同意正常化会更好地为您服务。例如在你的**网页**表格中有一个包含网站的* siteID *列;在**用户**表中也有一个* siteID *来指定用户属于哪个站点。 –