规范化数据库的大量数据

时间:2011-03-20 15:20:48

标签: database dataset normalization large-data

我需要存储大量数据存储在数据库中。数据是:对于每月的每一天,有5个事件。 5个事件进一步分为2个不同的子事件,需要保持独立,这意味着每月的每一天都有10个事件。

在顶层,5个事件有不同的标题和低位,奇数子事件有一个标题,偶数子事件有一个标题。

我想在存储之前对这些数据进行规范化,但是我很难找到最终的数据库结构并正在寻找这方面的提示。我对规范化的经验很少(这是我正在进行的个人项目),但我宁愿正确地做,然后一次性将所有内容都转储到数据库中。

编辑:请求的数据示例:

3月20日:

事件1:子事件1:凌晨4:30,子事件2:5:00上午 活动2:分项活动1:12:30 pm,分项活动2:下午1:00
事件3:子事件1:下午4:15,子事件2:下午4:45
事件4:子事件1:下午6:15,子事件2:下午6:45
事件5:子事件1:晚上8:00,子事件2:晚上8:45

所有事件在整个月和整年的不同时间重复。

3 个答案:

答案 0 :(得分:1)

只有一个事件表,每个事件都有一行。 Subevent可以拥有同一事件的外键来引用它们是子事件的事件。

答案 1 :(得分:1)

这是一个简单的模型,可以实现您的目标。根据您使用此数据的方式,您可以根据需要添加备用键或修改主键。如果您有任何问题,请告诉我。

enter image description here

编辑回应评论:

我不确定我是否明白你的要求。这里有细节。表之间的关系在模型中定义。如果您不理解(请原谅我)模型,我建议使用Crow's Foot Notation查找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

希望这有帮助。

答案 2 :(得分: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的子事件相关联。