mysql表设计问题

https://img2.mukewang.com/5c8f6be300011b5b08000097.jpg
上图的职位亮点我们把他当成多选搜索来看。
发布一个职位,职位的待遇是多选。我想问一下大家,遇到这种满足多属性的时候怎么建表:
1、每个属性设一个字段,用0和1来表示
2、把属性id用explode逗号隔开存数据库
3、另取一张表,1对多(职位ID:属性ID)来存储,

那种方法便于扩展,或者对SQL速度有好处

Qyouu
浏览 405回答 4
4回答

慕容3067478

从关系数据库理论出发的话可以使用第三种方案,职位与职位亮点建立多对多关系,但是如果你不使用数据库来维护关联关系的话,做查询操作的时候就头疼了; 第一种方案好像不太靠谱,加多/减少一个亮点数据表就要加多/减少一列; 如果不使用数据库来维系关联关系的话可以使用第二种方案,少一张中间表;

慕码人8056858

第三种好,加属性只要添加记录即可,不用改表结构

郎朗坤

推荐第三章方案吧,另外建表,跟现有的职位表是1多关系,查询的时候直接连表查询,也不会有很大的性能和速度劣势。况且还更好维护这个亮点。第一种方案明显是最不科学的方案,数据库读取并不会有太大问题,反而这样清晰的解构更方便后期的维护和操作。
打开App,查看更多内容
随时随地看视频慕课网APP