php - mysql。所有实体的所有属性 1 个表或每个实体 1 个表

标签 php mysql database database-design

目前,我正在处理数据库结构,我想得到一些建议。

我有 2 个对象:横幅和广告。

我可能会为他们创建横幅表和广告表,其中将保存有关每个实体的所有信息。作为主要优势,我看到与 1 个实体相关的所有内容都在这个实体表中。

另一方面,我可能会有一些像这样的表格: 实体属性。 它将保存 value_id entity_id 属性值。主要优点是对于实体我只需要一些基本字段,其他字段可以放在这个表中。

但我不确定哪个是更好的实践和表现? 提前致谢。

最佳答案

为了规范化,每 1 个实体有 1 个表总是更好。规范化是最小化关系数据库中的冗余和依赖性的目标或方法。在您的情况下,横幅和广告是不同的实体。现在看来您可以在同一张表中使用它们。所以“冗余”不是这样的。但是,如果您以后想添加一些额外的字段怎么办?

此外,代码的复杂性和可读性也是另一个问题。例如,当您在同一个表中添加不同类型的对象时,您需要添加一个内部逻辑来在代码中区分它们。这意味着您的代码很复杂且可读性可能较差。

关于php - mysql。所有实体的所有属性 1 个表或每个实体 1 个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9682938/

相关文章:

php - 使用 Hook 替换 Woocommerce 商店页面上的图像

php - 使用 Laravel Blade 显示来自 Postgres 的 JSON 数据

mysql - 数据库结构重新评估

php - 从 jplayer 的 mysql 数据库获取 URL

mysql - ElFinder 多根 MySQL 驱动

database - 巨大的(20 位)主键和 SQLite

php - 数据库访问抽象类

php - 使用 domdocument 从 html 字符串中删除具有特定 id 的 div

php - 如何在 PHP 文件中的 SQL 查询中添加 PHP

jquery - 使用jquery从数据库向所有用户发送带有textarea值的电子邮件