【发布时间】:2012-03-05 05:12:41
【问题描述】:
我使用过十几个模板系统(Zen Cart、Cube Cart 等)。它们中的每一个都有自己奇怪的产品、选项和类别的结构方式。所有的附加功能都导致了 McGuyver 的一堆纸牌情况,这使得使用代码成为一种完全的拖累。
因此,六年前我构建了自己的网络商店引擎,该引擎经过多年的发展并成为了自己的卡片堆栈。现在我正在对发动机进行全面检修。虽然没有一个引擎可以满足所有网络商店的需求,但我想知道以下模型是否有任何缺点,或者是否有更好的方法来创建一个灵活、规范化、不令人讨厌的商业数据库:
注意事项:option_types = 颜色、尺寸、材料options = 红色、白色、蓝色、S、M、L、棉、氨纶、皮革
除了故意省略的基本内容(位置、活动等)之外,还有人认为有办法改进吗?
【问题讨论】:
-
你是用什么软件制作的?
-
为什么
item_categories和item_options有id属性而不是(category_id, item_id)和(item_id, option_id)主键? -
@camus ondras.zarovi.cz/sql/demo
-
@FrancisAvila 好问题......最初我在
items中有category_id,但发现我的足够多的客户(~20%)希望每个项目有多个类别。所以上面的模式最终成为最干净的方法。 -
我发现相反的情况:它不是规范化的表单、重复的条目、更大的表、两个索引而不是一个。我怀疑速度是否有任何显着差异,但如果有你的方式会更慢。阅读 SQL 反模式 的“需要 ID”一章,更详细地了解为什么这不优雅。
标签: php mysql e-commerce