首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用自定义字段处理产品的MySQL设计

问用自定义字段处理产品的MySQL设计
EN

Stack Overflow用户
提问于 2010-02-26 22:44:48
回答 2查看 1.8K关注 0票数 4

我正在构建一个web应用程序,其中一个产品可以是几个不同的类型(实际上是家具类型),并且取决于这些类型,该产品有一些与它相关的领域。

快速背景:我使用MySQL和PHP作为我的框架。我正在寻找的答案不一定是“类似CakePHP”;我更喜欢一个通用的MySQL最好的数据库设计答案。

所以,我可以想到两个选择:

  1. 单表选项-我有一个表products和所有可能的字段,只留下不用于该特定产品的字段为null。这是我认为最简单的设计,但在集成过程中需要花点时间(因为我的模型需要跟踪类型,以及在该类型的基础上实际更新哪些字段)。
  2. 多产品表选项-每个产品都有适合该特定产品类型的适当字段的表。有一个主表(products),它至少有三个字段-- id (主键)、productType (查找正确的表)和productTypeId (它将产品表连接到特定的产品表。

我非常依赖于#1,但我想得到其他人的想法。

如果你需要更多细节,请告诉我!,谢谢!

更新:I只会期望一套很小的家具类型(<10开始,最大可能是20)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-26 23:21:04

我认为解决您的问题的解决方案,至少如果您对产品有许多不同类型的属性,可能是使用实体属性值模型。

基本上,你可以:

  • 一个简单的Product表,包含每个产品一行,并存储每个产品的数据类型(例如:名称、价格、库存数量)。
  • 另一个表,对于每个产品,存储产品可以拥有的属性--每行一个属性,这意味着每个产品有几行。

当然,您还需要某种“引用系统”,它定义:

  • 可能的属性列表
  • 对于每个属性,可能的值列表
  • 对于每一种类型的产品,可以与之关联的不同属性。

如果您不想建立这样的系统,我将使用类似于您的第二个解决方案:

  • 我不喜欢第一个解决方案的想法--那些空字段不是很好
  • 对于多表选项,我将使用:
    • 一个Product,它包含每个产品的一行
    • 几个ProductTYPE表
      • 而且,作为类/对象,这些ProductTYPE表将从Product继承
      • 这意味着,对于每个产品,您将在Product中有一行,在相应的ProductType表中有一行。

​

​

票数 5
EN

Stack Overflow用户

发布于 2010-02-26 22:53:34

为什么不使用对象或数组,甚至xml?

1.使用数组或对象,然后序列化:

代码语言:javascript
复制
$details = serialize(array('width'=>'1meter','color'='beatiful'));

或者使用xml,并仅将xml文件的路径存储在数据库中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2345350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档