如何将多个相等的引用放入 table 结构中?

How to fit multiple equal references into table structure?

如何将多个相等的引用放入 table 结构中?我怎么能那样做?例如:我有同学名单:

1 Peter
2 Jack
3 John
4 Mary
5 Birgit
6 Stella
7 Janus
8 Margo
9 Fred

现在我想定义奖学金。首先,让我们限制每个孩子可能属于一个团契。所以我们可以有 3 个奖学金:

[Peter, Jack]
[John, Mary, Birgit]
[Stella, Janus, Margo, Fred]

所有成员都是平等的,所以他们都应该参考其他成员。有没有比 table 对更好的方法来定义这种关系?喜欢:

1 2
3 4
3 5
4 5
4 3
5 3
5 4
6 7
6 8 
6 9
7 6
7 8 
7 9
8 6
8 7 
8 9
9 6 
9 7
9 8

如果使用成对的 table,是双向描述关系更好(如上),还是仅从一种方式到另一种方式 link 就足够了?这两种方式的好处是什么?

Table一对并没有限制任何成员只能成为一个伙伴,但这怎么可能?

我一直在寻找 SQL table 解决方案,但也许有更好的工具来处理此类 data-structures,所以我也添加了 nosql-tag。我正在为此类数据寻找合适的工具,但我很想知道如何将其也放入 SQL table 中。

是的,还有另一种方法。如果您有 "fellowships",那么您就没有 pair-wise 关系。从 Fellowships table 开始,然后 FellowshipsId.

然后你会得到一个 FellowshipsKids table。这称为联结 table,每个联谊会的每个成员都有一行。它会有这样的行:

FellowshipId   KidId
     1            1
     1            2
     2            3
     2            4 
     2            5
     . . .

你所拥有的是奖学金和孩子之间的 m-n 关系——一个奖学金可以有多个孩子,一个孩子可以在多个奖学金中。联结 table 是在关系数据库中表示它的标准方式。