2bad4u
V2EX  ›  MySQL

mysql 表设计,索引的问题

By 2bad4u at 2022 年 9 月 5 日 · 3160 次点击

已知一个商品最多有两层分类,且分类不到百种,比如分类:“手机” 子分类 “智能手机,老年手机,卫星手机”,这种是直接写

category: 手机 sub_cate: 智能手机

呢,还是搞个分类表

category_id: 123 sub_cate_id: 456

呢。

特别讨厌分类表这种各种 join 满天飞,组里的人,int 比 varchar 建索引效率高很多吗?

本来想用 mongodb ,没想到 goframe 支持 mongodb 的 orm 。

10 条回复  •  2022-09-18 02:43:51 +08:00
sadfQED2
   1
sadfQED2  
   2022 年 9 月 5 日 via Android
两种都行,哪种合适得看你们业务决定呀
Donjote
   2
Donjote  
   2022 年 9 月 5 日
加个分类表吧,也能做下拉框用。怕 join 且分类名不改动的话,分类 id 和 name 一起保存到主表也可以
xuanbg
   3
xuanbg  
   2022 年 9 月 5 日
不想 join 很简单啊,分类表当字典表用就是了。
kelvin_fly
   4
kelvin_fly  
   2022 年 9 月 5 日
不想建分类表,就在主表里加两个 column 。 其实还是建分类表合适,join 这些包装为一层 API 就行
defage
   5
defage  
   2022 年 9 月 5 日
电商类肯定是分类表的,如果是宽表分析类就是 sub_cate 了
zakokun
   6
zakokun  
   2022 年 9 月 5 日
建一个分类表,所有分类信息都放缓存,然后商品信息里面记录绑定的分类 id ,获取商品详情以后根据 id 组装一下。
2bad4u
   7
2bad4u  
OP
   2022 年 9 月 5 日
算球,就 join 吧,几行数据性能也不影响,就是写着累人。
eric6699
   8
eric6699  
   2022 年 9 月 5 日
分类表吧,万一改名字
adimn
   9
adimn  
   2022 年 9 月 6 日
关系型数据库,你不用 join 干嘛
akira
   10
akira  
   2022 年 9 月 18 日
你觉得 join 麻烦的话,就加个 category name ,sub cate name 咯
› MySQL 5.5 Community Server
› MySQL 5.6 Community Server
› Percona Configuration Wizard
› XtraBackup 搭建主从复制
Great Sites on MySQL
› Percona
› MySQL Performance Blog
› Severalnines
推荐管理工具
› Sequel Pro
› phpMyAdmin
推荐书目
› MySQL Cookbook
MySQL 相关项目
› MariaDB
› Drizzle
参考文档
› http://mysql-python.sourceforge.net/MySQLdb.html
© 2026 V2EX · 41ms · 3.9.8.5