Bor*_*ode 6 sql database database-design
有时创建一个单独的表会产生更多的工作,还是应该拆分吗?
例如:在我的项目中,我有一个客户表,每个客户对每个产品都有自己的特价(只有5种产品,将来不计划更多产品),每个客户在一周中都有自己独特的时间公司向他交付产品。
当日期和产品价格是客户表中的列而不是单独的表时,更改客户的天数/价格或显示所有客户的天数和价格之类的许多操作会容易得多,因此拒绝创建一个大客户在这种情况下的桌子?有什么缺点?
更新:他们只是告诉我,大约一年后,他们有可能添加更多产品,他们说他们的业务无论如何都不会超过20-30个产品。我仍然不明白为什么在这种情况下,如果产品的价格没有关系(每个客户都有自己的特殊价格),那么将行添加到“产品”表中比将列添加到“客户”表中更好?我唯一想到的好处是,只有5种产品的客户将不必“携带” 20种可空产品(节省服务器空间)?我没有太多经验,所以也许我错过了明显的东西?
显然,仅仅说应该始终正常化是不务实的。没有任何建议总是正确的。
如果你可以肯定地说 5 个“项目”足够长时间使用,我认为将它们存储为列是完全可以的,如果它可以节省你的工作的话。
如果您的预测失败并且需要存储第 6 个项目,您可以添加一个新列。只要列数不会以很高的概率失控,这应该不是问题。
只是要小心这种策略,因为许多程序员预测未来的能力非常有限。
最终只有一件事很重要:以最低的成本提供所需的解决方案。代码纯度不是目标。