2010-02-03 63 views
1

我们正在将内容的元数据存储在数据库表格中。外面有一个名为关键字的列,其中包含与内容相关的关键字。因此,我们是否应该根据关键字列对表格进行规范化处理,因为关键字列会保留多个值。数据库表格规范化

回答

2

我不认为这个问题的答案是复杂的。这是一本教科书的规范化问题,答案是是的,你应该正常化这个。

在一列中存储多个值是违反第一 - 正常形式(大多数设计师试图去第三 - 正常)。您希望这样做的唯一原因是作为性能优化,即如果数据库非常大,并且您可以在非规格化列上使用某种特殊索引策略来实现某些特定优化(即物化路径)。这里情况不同。

不正常化会使编写查询变得困难并且无法正确编制索引。如果您存储关键字,我只能假设原因是关键字搜索 - 所以您一定希望能够索引这些数据并编写简单的查询。

请 - 正常化您的数据。

+0

是的,重要的部分是如果您想要快速执行关键字搜索,则需要对关键字进行索引并将它们置于规范化列中,这是执行此操作的最简单方法。 – 2010-02-03 15:06:03

2

我认为这个问题的答案非常复杂。所有关于数据库设计的大书都说正常化是一件好事。但在你的情况下,这取决于你将如何查询数据。例如,如果您需要获取包含关键词的所有行,则必须使用不太快的类似运算符。但是如果你把所有的关键词放在一张表中,那么你只有一个地方更快。