数据库架构 - 拆分与联盟vs.?

时间:2010-04-14 16:24:53

标签: database architecture split

有一个有趣的场景我想要超越你们:DB架构。

将有两个实体:

  • 应用程序:这或多或少是我们正在构建的应用程序的核心。它有一个开始和结束日期以及大约15个其他属性。
  • CalendarEvent:这是一个使用较少的实体。它有一个开始和结束日期,可能有3个其他属性。

我们正在构建的应用程序主要关注应用程序。将会有一个日历页面,其中列出了应用程序和事件。鉴于实体之间的相似性(开始日期和结束日期)以及将有一个页面列出它们都将被列出的事实,你会如何削减它?

思路:

  • 有一个事件表,包括开始日期,结束日期和时间表。类型(应用程序或日历)。有一个引用事件表的应用程序表。有一个引用事件表的calendarevent表吗?
  • 保持表格分离,并在需要两个实体的查询中使用union

提前致谢, 亚历

编辑: 倾向于使用具有开始日期和结束日期的“期间”表的想法。然后,“Application”和“CalendarEvent”表都可以对句点表中的记录进行外键引用。

1 个答案:

答案 0 :(得分:1)

第一个选项似乎更具可扩展性,因为您最终可以向事件中添加更多类型

唯一的缺点是加入/丢失外键,但如果这不是问题,请使用此设计。但是使用正确的索引应该可以获得良好的性能。

我认为,使用联合,你必须在任何情况下指定类型来区分2个表。