数据表设计问题

现在有数据表如下
数据分类表
cate_id
cate_name
pid

商品表

goods_id
goods_name
cate_id

属性表
attr_id
attr_name
goods_id

需求如下,原来通过商品表 分类可以间接查到属性,现在分类表要直接关联属性 ,分类一对多个属性,如何设计数据表数据不会冗余

阅读 2.2k
4 个回答

这样设计如何?
取消商品表和属性表的关联

新建中间表
attr_id
attr_type 【1 为分类 2、商品】
connect_id 根据 attr_type 来决定关联goods_id还是cate_id

这个感觉还是需要根据实际需求来设计表结构的。
属性表和分类是什么关系。模型关系,比如一对一,一对多,多对多的关系。
然后才可以设计出合理的数据表。

@chinasky 的解决方案不错。

说下我的理解:

一个商品有几个属性呢?

如果有只有一个属性,那么直接把属性表删除,把属性字段添加到商品表里。

如果有多个属性。那么的确有冗余。因为分类也关联属性,商品也关联属性。那么属性表的goods_id就没用了。得删除。然后再添加中间表,我觉得为了容易理解和数据分离。建2个中间表。分类和属性,建一个中间表。商品和属性,建一个中间表。

属性表跟商品表是一对一的关系吧?一个商品对应一个属性?
如果是这样,直接商品表和属性表合并了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题