我有3个表,章节,子章节和分区。这些表中的每一个都有额外的记录,我想将它们存储在一个名为“Sections”的表中。它们都是1:很多关系 我的问题是在这里建立交叉引用的最佳方法是什么?这就是我目前所拥有的:
Chapter table:
chapterID int
partID int
chapterNumber varchar
chapterName varchar
SubChapter table:
subChapterID int
chapterID int
subChapterNumber varchar
subChapterName varchar
Division Table:
divisionID int
subChapterID int
divisionNumber varchar
divisionName varchar
Section Table:
sectionID int
parentID int
parentType int (1 = chapter; 2 = subchapter; 3 = division)
sectionNumber varchar
sectionName varchar
我遇到的问题是FK限制。我应该取消外键吗?如果我这样做或者甚至会成为一个问题,我该怎么做才能提高效率?
对于那些想知道的人,我的要求是在数据库中访问州和联邦管理代码的某些方面,以填充Intranet网页上的下拉菜单。
答案 0 :(得分:0)
就个人而言,我会为每个父类型创建一个section表,然后你的外键才能正常工作。然后我会创建一个视图来连接所有连接,以减轻加入这六个表的重复性。
我当然可以欣赏你现在拥有的设计,但拥有FK可以很好地防止孤立的数据。另一种方法是在Chapters,SubChapters和Divisions中添加删除触发器,以便在有相应的Sections记录时转义删除。