拿着一个阵列

时间:2012-04-22 06:00:11

标签: mysql sql arrays

我正在尝试使用名为MEETING的表格创建数据库。

所以meeting的每个实例,就像现实一样,可以包含不同数量的人。

因此meeting1(在会议内)可能包含user1user2user3

meetings2(同样在会议内)可能包含user1user4user6user7

我将如何处理这种情况。我在考虑创建一个数组,但我不知道该怎么做。

1 个答案:

答案 0 :(得分:4)

您将使用所谓的连接表。您将有三个表:MEETING,USER和连接表(可以称为MEETING_USER或类似的东西)。您的用户表将包含有关每个用户的信息(至少是一些标识符和用户名)。每次会议也都有一个唯一的ID。然后,您的连接表将具有格式的行,并在会议中为每个用户添加新条目。这有利于所谓的多对多关系,因为每次会议可以有很多用户,每个用户都可以参加很多会议。

MySQL中的一些sql引擎允许您添加“外键映射”,以便在搜索会议中的所有用户或用户参加的所有会议时运行得非常快。其他数据库服务器(MSSQL等)也支持这种事情。

示例:

  • 会议1有id 123
  • 会议2有id 345
  • 用户1有id 3
  • 用户2有id 4
  • 用户3有id 5

如果用户1和3出席了会议1,则联接表中的某个位置将包含以下条目:

  • 123,3(会议1,用户1)
  • 123,5(会议1,用户3)

如果所有人都参加了会议2,则联接表中会包含这些条目:

  • 345,3(会议2,用户1)
  • 345,4(会议2,用户2)
  • 345,5(会议3,用户3)