2

というテーブルでデータベースを作成しようとしていますMEETING

したがって、meeting実際の生活と同じように、のすべてのインスタンスには、さまざまな量の人が含まれる可能性があります。

したがってmeeting1、(MEETINGuser1内)には、、、が含まれる場合がありuser2ますuser3

ただし、meetings2(ここでもMEETINGuser1user4に) user6、、、、が含まれる場合がありますuser7

そのようなシナリオをどのように処理しますか。配列を作成することを考えていましたが、その方法がわかりません。

4

1 に答える 1

4

いわゆる結合テーブルを使用します。MEETING、USER、および結合テーブルの3つのテーブルがあります(MEETING_USERなどと呼ばれる場合があります)。ユーザーテーブルには、各ユーザーに関する情報(少なくとも、いくつかの識別子とユーザー名)が含まれます。各会議にも一意のIDがあります。結合テーブルには、会議の各ユーザーの新しいエントリを含む形式の行が含まれます。これにより、各会議には多くのユーザーが参加でき、各ユーザーは多くの会議に参加できるため、いわゆる多対多の関係が容易になります。

MySQLの一部のSQLエンジンでは、「外部キーマッピング」を追加できるため、会議のすべてのユーザーまたはユーザーが参加したすべての会議を検索するときに非常に高速に実行されます。他のデータベースサーバー(MSSQLなど)もこの種のものをサポートしています。

例:

  • 会議1のIDは123です
  • ミーティング2のIDは345です
  • ユーザー1のIDは3です
  • ユーザー2のIDは4です
  • ユーザー3のIDは5です

会議1にユーザー1と3が参加した場合、結合テーブルのどこかに次のエントリが含まれます。

  • 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 に答える