多种类型的数据-一个表与多个表


Many types of data - One table vs multiple tables

我正在开发一个Web应用程序,其主要功能是向用户显示一些数据。然而,这些数据有几种类型,每种数据都必须以不同的方式呈现。

例如,我必须列出9个结果——3本书、3位作者和3个文件。

这本书用(char)TITLE,(text)DESCRIPTION来描述。

作者用(char)TITLE、(char)DESCRIPTION来描述。

文件用(char)URL描述。

此外,每种类型都有ID、DATE、VIEWS等字段。书和作者都用简单的HTML代码呈现,文件使用外部阅读器嵌入网站。

我应该构建三个不同的表并在获取这些数据时使用JOIN,还是构建一个表并将所有类型存储在其中?哪种态度更有效?

附加信息-将会有大量的记录。

实现这一点的逻辑方法是保持事物分离,这遵循数据库设计的3NF规则。这在检索不同类型的结果时提供了更大的灵活性,特别是在有大量数据的情况下。将所有内容都放在一个表中是绝对不好的DB做法。

这取决于数据的结构。

如果你有1:1的关系,比如一本书有一个作者,你可以把记录放在一行。如果一本书有几个作者,或者一个作者有几个书,你应该建立单独的表booksauthors,并将它们与一个表author_has_books链接,在表中你有两个外键。这样就不会存储重复的数据并避免不一致。

有关数据库规范化的更多信息,请点击此处:

http://en.wikipedia.org/wiki/Database_normalization

将它们分离并创建关系。这样,当你开始获得大量数据时,你会注意到性能的提高,因为你一次只调用3个字段(IE,当你只是在看一本书时),而不是7个。