MySql:将几种类型的费用存储在另一个表中有什么好处
Product Table -> (productid...),
ProductFee Table -> (productid, feetypeid, feeamount),
ProductFeeType -> (feetypeid, feetitle)
结束
产品表-> (productid, feeXamount, feeYamount, feeZamount)
?
前者需要太多的联接,而在创建/更新外观页面时,需要太多的插入/更新。这种结构的好处是什么?前者似乎是比较可取的办法。显然,如果收费金额的种类数量开始像40-50这样疯狂,最好遵循后一种方法。但是,如果只有5-10个这样的列,那么数据库的大小是微不足道的,特别是当您不是在编写像WordPress这样的通用CMS,而是为特定的商店定制了一个CMS时?
当然:这些费用是可选的,但这就是null的意义所在,对吗?
发布于 2014-12-20 17:20:53
如果费用的范围保证是固定的-以及费用本身,您可能可以将它们作为列在产品表中,而不是作为其他表中的行。否则,您将需要调整架构和代码,以添加新类型的费用。
一旦您有了单独的表,维护,例如,期间,一个特定的费用值是有效的,是简单的(尽管它可能需要多一个表和多一个连接)。想象一下用列来做这件事。
在(数据库)设计中,您需要根据您的领域(“S特性”在系统生命周期内有效)平衡(应用程序)需求、解决方案的效率/有效性、灵活性等。
一般来说,这是数据(De)规范化…的一个例子。
https://dba.stackexchange.com/questions/86660
复制相似问题