我正在开发一个Web应用程序,其主要功能是向用户显示一些数据。然而,这些数据有几种类型,每种数据都必须以不同的方式呈现。
例如,我必须列出9个结果——3本书、3位作者和3个文件。
这本书用(char)TITLE,(text)DESCRIPTION来描述。
作者用(char)TITLE、(char)DESCRIPTION来描述。
文件用(char)URL描述。
此外,每种类型都有ID、DATE、VIEWS等字段。书和作者都用简单的HTML代码呈现,文件使用外部阅读器嵌入网站。
我应该构建三个不同的表并在获取这些数据时使用JOIN,还是构建一个表并将所有类型存储在其中?哪种态度更有效?
附加信息-将会有大量的记录。
实现这一点的逻辑方法是保持事物分离,这遵循数据库设计的3NF规则。这在检索不同类型的结果时提供了更大的灵活性,特别是在有大量数据的情况下。将所有内容都放在一个表中是绝对不好的DB做法。
这取决于数据的结构。
如果你有1:1的关系,比如一本书有一个作者,你可以把记录放在一行。如果一本书有几个作者,或者一个作者有几个书,你应该建立单独的表books
和authors
,并将它们与一个表author_has_books
链接,在表中你有两个外键。这样就不会存储重复的数据并避免不一致。
有关数据库规范化的更多信息,请点击此处:
http://en.wikipedia.org/wiki/Database_normalization
将它们分离并创建关系。这样,当你开始获得大量数据时,你会注意到性能的提高,因为你一次只调用3个字段(IE,当你只是在看一本书时),而不是7个。