数据表设计问题

2017-12-18 15:06:45 +08:00
 alvy
比如商品,商品分好几种类型,不同类型有自己的独有属性,那么设计的时候两种方案:
1. 一个类型设计一张表
2. 一张表,然后有个类型字段,属性都放这个表里面

优劣比较:
1. 逻辑清晰,但是维护多张表会麻烦,比如修改删除会操作多张表
2. 只需对一张表操作,但是字段属性看着会比较乱

还需要考虑什么呢?如何取舍?
1966 次点击
所在节点    Python
6 条回复
jtsai
2017-12-18 15:13:50 +08:00
属性要分表
alvy
2017-12-18 15:14:23 +08:00
@jtsai 然后呢
yuhuigreed
2017-12-18 15:41:58 +08:00
一张属性表、一张商品表。商品表里面有个属性 ID 字段关联属性。
yang2yang
2017-12-18 15:59:56 +08:00
方法一:一张属性表、一张商品表。属性表里面有个外键关联商品。不过这种方式每次都要 join 操作。如果还有其他表关联,以后会 join 越来越多的表。找数据很麻烦。
方法二:野方法。直接在商品表里面弄个属性字段,这个字段放一个 json 串来表示属性,这种方式每次只要查一种表,但是以后会越来越乱,不合适,可能适合一些小功能的实现吧。
saulshao
2017-12-18 16:07:46 +08:00
下面是扩展性比较好的设计:
1. 商品类型表 - 这个表只保存商品类型本身的信息,例如英文名字,ID,中文名字等等
2. 商品类型可能有的属性表: - 这个表保存商品具备的所有属性,你可能还需要一个表来维护属性的"属性"(主要给开发用)
3. 商品和商品类型的对应关系表: - 商品和商品类型的对应关系。
3. 商品对应的属性值表: - 保存商品与属性值对应关系。
alvy
2017-12-20 13:48:55 +08:00
谢谢楼上几位,我再思考思考

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/415678

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX