单个数据库模式还是多个模式?

ham*_*ter 5 schema database-design

我正在为一年一度的活动设计一个网站。这些事件是相似的,但大部分都是独立的。我看到两种可能的设计:

  1. 具有大多数表的单个模式,具有 EventID 列以将数据标记为特定年份。可能每年都有意见。

  2. 每个事件一个多个模式。这些事件是独立的,因此可以简单地复制模式并清除每年的旧数据。

我有多个模式以提高性能、易于更改和编程简单,但我也觉得单个模式有其优点,例如数据库简单、统一和更容易访问旧数据(不常见)。

  • 哪种方法更可取?
  • 在这方面有任何现实世界的经验吗?

谢谢。

小智 6

“更干净”的解决方案肯定会使用单个模式,并将您的数据与特定事件相关联,或者使用 EventID 列,或者更好的是使用 Events 表,将您的数据与该表中的一行相关联(但保持简单,您不需要将每个表中的每一行都与您的事件相关联,只需将“最顶层”的对象关联起来)

但另一方面,也许“You Aint Gonna Need It”,一年之内会发生很多变化,您可能必须为明年的活动做出很多改变和改进。无论如何,您会发现自己正在携带和迁移没人需要或想要的数据,因此您最终可能会清除数据库。

我几次艰难地学会了坚持 YAGNI 规则,并且让事情变得简单总是被证明是更好的解决方案。只要您生成干净且可维护的代码,添加功能通常比修剪不需要(通常未经测试)的脂肪简单得多