【发布时间】:2013-06-30 04:46:17
【问题描述】:
我有以下场景:
在销售代表跟踪订单的订单跟踪系统中: 每个订单总共可以有 4 种产品类型(佣金桶),每个桶可以有 1 个或没有该产品类型的产品。
所以一个订单最多可以有 4 个产品(每种可能的类型之一)
我需要为四种产品类型中的每一种跟踪的信息都是相同的:product-sold-id(fk)、status、product-given-id(fk)
在订单表中添加 12 列有什么好处:每种产品类型 3 列,例如 product-type1-sold-id、product-type1-status、product-type1-given-id..... 等等?
这将是最简单的,但我的问题是大多数订单只会出售 2 或 3 种产品类型,这将导致每种产品类型有 3 个空字段未售出。每天有 100 个代表 @ 10 个订单,这将导致很多空字段。
我倾向于使用带有 order-id(fk) 的订单项表来减少所有空字段。 这种方法的问题在于,我必须向我的客户端代码添加一定程度的复杂性来处理嵌套数据,或者我的服务器代码必须在请求时展平数据并且还能够解析和保存从客户端发送修改后的平面数据。同样,每天有 100 个代表@10 个订单,每个订单有 1-4 种产品类型,这将导致每天向订单项表中添加 1000-4000 行。有什么办法可以克服吗?
任何建议将不胜感激。我正在使用 extjs 客户端,php 服务器端,以 MySQL 作为我的数据库。
【问题讨论】:
-
通常最好有两个单独的表。通过正确的索引,您应该不会对行数有任何问题。
标签: php mysql database-design extjs data-modeling