0

データベースに保存する必要がある大量のデータがあります。データは次のとおりです。毎月、5 つのイベントがあります。5 つのイベントはさらに 2 つの異なるサブイベントに分割され、これらは別々に保持する必要があります。つまり、毎月 10 のイベントがあります。

最上位では、5 つのイベントに異なる見出しがあり、下に、奇数番号のサブイベントに 1 つの見出しがあり、偶数番号のサブイベントに 1 つの見出しがあります。

保存する前にこのデータを正規化したいのですが、最終的なデータベース構造にたどり着くのに苦労しており、これに関するヒントを探しています。私は正規化の経験がほとんどありません(これは私が取り組んでいる個人的なプロジェクトのためのものです)が、適切に行ってからすべてを一度にデータベースにダンプしたいと思います。

編集: 要求されたデータの例:

3月20日:

イベント 1: サブイベント 1: 午前 4:30、サブイベント 2: 午前 5:00
イベント 2: サブイベント 1: 午後 12:30、サブイベント 2: 午後 1:00
イベント 3: サブイベント 1: 4:午後15時、サブイベント2:午後4時45分
イベント4:サブイベント1:午後6時15分、サブイベント2:午後6時45分
イベント5:サブイベント1:午後8時、サブイベント2:午後8時45分

すべてのイベントは、1 か月および 1 年を通してさまざまな時期に繰り返されます。

4

3 に答える 3

1

各イベントの行を持つイベント テーブルを用意するだけです。サブイベントは、サブイベントであるイベントを参照するために、同じイベントへの外部キーを持つことができます。

于 2011-03-20T16:29:54.150 に答える
1

これは、探しているものを実現するための単純なモデルです。このデータをどのように使用するかに応じて、必要に応じて代替キーを追加したり、主キーを変更したりできます。ご不明な点がございましたら、お知らせください。

ここに画像の説明を入力

コメントに応じて編集:

あなたが求めていることを理解しているかどうか正確にはわかりません。ただし、詳細は次のとおりです。テーブル間の関係はモデルで定義されます。モデルを理解していない場合 (理解していればご容赦ください)、クロウズ フット表記法を利用して ER 図を調べることをお勧めします。

EventId (INT) : Incremental 
EventTypeCode (CHAR (2)) : Used to cover Events 1-5 as E1 - E5
Description (VARCHAR) : Info describing E1-E5
SubEventId (boolean) : Since you only declare two options 1 & 2

お役に立てれば。

于 2011-03-21T21:22:06.457 に答える
0

これらのテーブルはデータを正規化します。

   Event
      Date 
      Time
      Event Type (FK to Event Type)
      PK Date,Time,Event Type
      *Example Data: 2011-03-30; 04:30; 1 top;*

    Event Type 
      Type 
      Heading
      PK Type (Values 1(top)-5(top),1(odd)-5(even))
      *Example Data: 1 top; This is event type 1 top level;*

    Parent Event
      Child Event (FK to Event)
      Parent Event (FK to Event) 
      PK Child Event, Parent Event (and possibly Index each field independently)
      *Example Data: 2011-03-30, 04:30, 1top; 2011-03-31, 05:00, 1 even;*

編集: 要求された例のデータが追加されました。関係は外部キー (FK) によって与えられるため、この例では、1 つの最上位イベントを typ 1 の 1 つのサブイベントに関連付けています。

于 2011-03-20T17:12:26.030 に答える