![]() |
1
1
如果每个站点地图只能连接一个页面或链接,那么我将选择第一个选项。在这种情况下,您不会像在第二个选项中那样拥有空值,也不会像在第三个选项中那样拥有不必要的列。 获取所有页面(或链接)将非常容易,因为它只是一个简单的内部连接。 |
![]() |
2
1
就我个人而言,选项2是确保您的一个且只有一个记录被强制执行的最简单的方法。应设置触发器以确保两个值中至少有一个为空。在这种情况下,拥有空值本身没有什么不好的。 |
![]() |
3
0
您可以将这些表支持的多对多关系作为另一个选项:
位置贴图
网站地图
编辑:但是经过深思熟虑不可能比你的选项1更有用…对不起! |
![]() |
4
0
另一种可能性:添加一个具有sitemapid、pageid和linkid的新表,并添加约束 ((pageid为空或linkid为空)和(pageid不为空或linkid不为空),SiteMapid不为空) 然后你就可以用新桌子加入到另外两张桌子上了……就在我30秒的休息时间里。 (未经检验) |
![]() |
5
0
如果有一个名为siteitem的表,其中包含sitemapid,并且与页表和链接表都有1-1关系,即siteitem表中的一个条目在页表或链接表中都有一个条目,该怎么办?在这种情况下,页面和链接表类似于SiteItem表的子类。 |
![]() |
6
0
最后通过直接向主键添加约束解决了这个问题,因此SiteMapID是一个与pageID和linkid一对一关系的自动编号/标识。它不会停止为一个站点地图行同时添加页面和链接行,而是避免任何冗余列或附加表。 |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 5 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 5 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 6 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 6 月前 |