2

我正在尝试使用名为MEETING.

所以 a 的每个实例meeting,就像现实生活中一样可以包含可变数量的人。

所以meeting1(在​​MEETING里面)可能包含user1, user2, user3.

但是meetings2(再次在MEETING内部)可能包含user1, user4, user6, user7.

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

4

1 回答 1

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)
于 2012-04-22T06:09:04.330 回答