Database 数据库表的设计

Database 数据库表的设计,database,database-design,Database,Database Design,我正在尝试设计一个数据库表,其中一列表示ID(unique),一列表示name,另一列表示整数列表(3或有时4个数字)。这些数字是同一表中其他行(相邻行)的ID。设计这张桌子的最好方法是什么 示例行: ID Name Adjacent 1 AAA 2,3,14 2 BBB 1,7,26 3 CCC 1 7 DDD 2,26 14 EEE 1 26 FFF 2,7 您可以尝试下面的sql小提琴

我正在尝试设计一个数据库表,其中一列表示ID(unique),一列表示name,另一列表示整数列表(3或有时4个数字)。这些数字是同一表中其他行(相邻行)的ID。设计这张桌子的最好方法是什么

示例行:

ID    Name    Adjacent
1     AAA     2,3,14
2     BBB     1,7,26
3     CCC     1
7     DDD     2,26
14    EEE     1
26    FFF     2,7

您可以尝试下面的sql小提琴。它是用t-sql编写的。明细表
相邻
与主表
main
具有多对一关系:


当您希望将相邻数据作为一行进行查询时,t-sql提供了相应的查询提示。

这里,您不是设计了所有数据吗?正如我所写的,第三列是一个字符串。我想知道是否有更好的方法来保存这些ID,这样我就不需要在代码中解析它们。有些数据库支持数组列。如果您的表没有,那么您应该将它们移动到一个相关的表(我认为是多对多关系)Tanx。但是你,当1和2相邻时,2也和1相邻。有没有一种方法我不必为这种关系添加两行?表之间的多对一关系已被大多数应用程序尝试和测试,并已被证明是主-细节场景的最佳设计。这还允许您发出简单的查询来确定主表相邻行的计数。