![]() |
1
3
您需要一个中间查找表:
(我在猜测您的键类型,请使用任何合适的键类型)。 要在节中查找项目,请执行以下操作:
查找项目所属的节的步骤
|
![]() |
2
2
为了表示多对多关系,您需要一个带有SectionId和ItemId的支持表。两者都应该是各自表的外键,该表的主键应该是两列。
|
![]() |
3
0
您需要第三个表,称为连接表,它提供了N到N的关系,其中有两个外键指向父表。 |
![]() |
4
0
您需要第三个表itemsPerSection,它的主键由itemid和sectionid组成,这样您就可以拥有一个N到N的关系,并且很容易进行搜索。
|
![]() |
5
0
我知道(但我不是一个经验丰富的数据库设计师!),并且我在几个数据库中看到了第三个表:它有两个列,一个带有sections表的id,一个带有items表的id。
|
![]() |
6
0
你说的是一种多对多的关系。以规范化形式,最好使用第三个表进行处理:
|
![]() |
7
0
您需要将节关系存储在第二个表中。下面是一个非常简单的例子:
当然,在第二个表中,您可以存储对第三个“sections”表的引用,但为了清晰起见,我将其排除在外。 祝你好运:) |
![]() |
8
0
然后,您将需要加入表以获取数据。。。
|
![]() |
9
-1
您可以在一个字段中存储多个ID,用逗号分隔,然后使用FIND_in_SET命令:
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-in-set |
![]() |
developer · 带外键的SQL表设计 4 月前 |
![]() |
relatively_random · 确保两个表之间一致的共同参考 6 月前 |
![]() |
b126 · 在两种不同的Oracle模式上执行相同查询的速度差异很大 1 年前 |
![]() |
robertspierre · 在多对多关系中自动删除未引用的行 1 年前 |
![]() |
Michael Samuel · MYSQL在以下情况下自动创建索引 7 年前 |