这应该是两个数据库表还是一个?

时间:2018-03-14 11:38:31

标签: sql database database-schema

我有一个名为interviews的数据库表,面试官和受访者都必须审查面试的方式。审查将有类似的领域(按比例评级)但不同的问题。

选项1是将它们放在同一个表中,并让1..N返回到访谈表(存储编写者的ID和正在审阅的ID)。并且仅限制可以在应用程序级别输入哪些字段。

选项2是有两个表(一个专门用于面试官评论,一个专门用于受访者评论。

您对建模的最佳方式有何看法?

3 个答案:

答案 0 :(得分:0)

虽然这非常接近以意见为基础,但我的评论时间过长,无法发表评论。

处理调查相当复杂。调查随着时间的推移而变化,因为添加,删除和修改了问题,并添加,删除和修改了答案。然而,人们经常希望使用调查问题并跟踪结果。

因此,调查的数据模型比“一个表”或“两个表”复杂得多。有调查,问题,答案的表格,关系和价值观可能随时间而变化。

答案 1 :(得分:0)

一张大桌往往是一个糟糕的选择。如果您正确编制索引并编写精细调整的查询,它们将会正常运行。拥有多个表可以通过多种方式为您提供帮助,例如

访问特定数据, 轻松查询等

答案 2 :(得分:0)

两个评论表。这些是两个真正独立的实体。

这是交易:

  • 设计一个“工作”用于两个不同目的的单个表可以完成,但它具有挑战性:在数据库级别和应用程序上。
  • 但是......几个月之后,新的要求出现了,这使得它更具挑战性。您需要实现奇怪的逻辑以继续使用一个表。代码变得复杂,测试成为一场噩梦。
  • 然后,更多的变化进来。它变得无法管理。在某些时候,你会发现它们从一开始就会有不同的东西,这将会有不同的进展。

最重要的是,最好将它们从一开始就分开,以避免将来出现巨额成本。即使他们在开头有相同的列。