更改数据库架构的缺点 - 在中间插入或删除新列/表

Bab*_*ase 1 mysql php eav

看了很多链接,对于电商网站来说,因为可能需要定期添加很多属性,如果我们使用Flat table可以吗?

在项目中间更改数据库架构或插入/删除新列和表的缺点是什么?

如果我们在数据库中保留大量 NULL 值,还会有什么问题吗?

因为我听说 EAV 是邪恶的,所以我想创建一个带有平面桌子的购物网站....

Joe*_*own 6

您的系统的基础是您的数据库。如果更改数据库架构,则还必须更改代码。这意味着保持稳定的数据模型有助于减少您需要在代码中执行的返工量。

话虽如此,在现实世界中,需求会发生变化。预先投入一些时间以使您的数据模型尽可能好是一个好主意。在那之后,现实世界将介入,您将不得不修改您的数据库架构。

通过仔细规划,您可以在容易预料的更改发生时为自己节省大量时间来重新编写代码。

就 Null 值而言,它们本身并没有错。但是,如果您发现自己的表有很多 Null 值,则可能表明您的设计未正确规范化。在像电子商务站点这样的事务处理系统中,您应该从第三范式 (3NF) 的数据库设计开始,并且仅在必要时非常谨慎和深思熟虑地进行非规范化。这将有助于防止数据质量下降。

作为一般规则,应避免使用 EAV,尽管在某些情况下它是明智的选择。我在这里论证,在线产品目录就是其中一种情况。