SQL列是包含其他行的列表

时间:2018-07-03 20:20:42

标签: sql-server

我有一个看起来像这样的表:

人员

| Id | Name | FavoriteColor |

我想添加一个新列,即“ Friends”,使其变为

人员

| Id | Name | FavoriteColor | Friends |

我希望Friends列(抽象地)是一个包含Persons表中其他行的ID的列表。

执行此操作的最佳方法是什么?我知道我可以使用FK来链接表,但我不只是将特定行链接到其他表中的特定行,而是将特定行链接到特定表。

1 个答案:

答案 0 :(得分:2)

您不添加字段,而是创建第二个表

 Persons: id, Name, Favorite Color
 Friends: PersonA_id, PersonB_id

其中PersonA_id,PersonB_id是“人员”表的外键。

所以您可以在人中拥有这样的东西

 id     Name     Color
  1     Luis     Blue
  2     Pedro    Red
  3     Ana      Yellow
  4     Donald   Black

朋友:

PersonA_id PersonB_id
      1         2
      3         1

Luis有2个朋友,Pedro和Ana仅有一个朋友(Luis),而Donald 0个朋友。