上图的职位亮点我们把他当成多选搜索来看。发布一个职位,职位的待遇是多选。我想问一下大家,遇到这种满足多属性的时候怎么建表:1、每个属性设一个字段,用0和1来表示2、把属性id用explode逗号隔开存数据库3、另取一张表,1对多(职位ID:属性ID)来存储,
那种方法便于扩展,或者对SQL速度有好处
4 回答
慕容3067478
TA贡献1773条经验 获得超3个赞
从关系数据库理论出发的话可以使用第三种方案,职位与职位亮点建立多对多关系,但是如果你不使用数据库来维护关联关系的话,做查询操作的时候就头疼了;
第一种方案好像不太靠谱,加多/减少一个亮点数据表就要加多/减少一列;
如果不使用数据库来维系关联关系的话可以使用第二种方案,少一张中间表;
郎朗坤
TA贡献1921条经验 获得超9个赞
推荐第三章方案吧,另外建表,跟现有的职位表是1多关系,查询的时候直接连表查询,也不会有很大的性能和速度劣势。况且还更好维护这个亮点。第一种方案明显是最不科学的方案,数据库读取并不会有太大问题,反而这样清晰的解构更方便后期的维护和操作。
- 4 回答
- 0 关注
- 404 浏览
添加回答
举报
0/150
提交
取消