2

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

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

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

作者用 (char)TITLE, (char)DESCRIPTION 描述。

文件用 (char)URL 描述。

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

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

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

4

3 回答 3

4

这样做的逻辑方法是将事物分开,这遵循数据库设计的 3NF 规则。这在检索不同类型的结果时提供了更大的灵活性,特别是在有大量数据时。将所有内容放在一个表中绝对是糟糕的数据库实践。

于 2012-07-20T11:33:47.280 回答
1

这取决于您的数据结构。

如果你有 1:1 的关系,比如一本书有一个作者,你可以把记录放在一行。如果一本书有多个作者或一个作者有几本书,您应该设置单独的表格books并将authors这些表格与author_has_books您拥有两个外键的表格链接。这样您就不会存储重复数据并避免不一致。

有关数据库规范化的更多信息:

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

于 2012-07-20T11:39:10.687 回答
0

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

于 2012-07-20T11:41:03.210 回答