如何设置存在两个并发多个关系的数据库模式?

时间:2012-03-08 21:29:13

标签: sql database oracle schema denormalization

我需要一张表来控制停机时间,基本上停机事件包含以下信息:
EVENT_ID,START_TIME,END_TIME,SERVICES,CAUSES

主要问题是我不知道如何设置这个问题因为我不想像这样混乱:

ID  |  EVENT_ID  |  START_TIME  |  END_TIME  | SERVICES  |  CAUSES
01          455       12:00          12:30      FINANCE     NETWORK
02          455       12:00          12:30      ADVANCE     NETWORK
...
13          455       12:00          12:30      REFRESH     DATABASE

基本上......对于单个中断,我会在表中有很多条目,因为如果有多个服务/原因,该表实际上将保留所有组合。

有更有效的方法来组织这个吗?

1 个答案:

答案 0 :(得分:3)

是 - 稍微规范化:

EVENT
------
event_id
start_tm
end_tm
description

EVENT_SERVICE
-------------
event_id
service_id
employee_id 
start_tm
end_tm
(other info as needed)

SERVICE
---------
service_id
description

CAUSE
-------
cause_id
description

EVENT_CAUSE
-----------
event_id
cause_id

已编辑以使用单独的SERVICE表

反映ypercubes注释