标签:记录 解决方案 数据库 constraint owner unique type id
项目中有这样一个需求:有两个字段id和type,保证在id相同的情况下,type中的owner属性有且只能出现一次。
一开始的想法是代码保证,每次在插入前的时候查询数据库,搜寻同一id下是否已经有owner了,被大佬否决了,因为在并发条件下显然会出问题,数据库里必须要加约束。
后面查资料了解到联合索引
看起来好像解决问题了,但其实在id相同下,只有owner是唯一的,其他类型的type是不唯一的,怎么办呢?还得看大佬的解决办法!
1 新加个字段 unique_constraint 用来存个值。
2 当type是owner时。存unique_constraint一个固定值。
3 id+unique_constraint 做个唯一约束。
4 当type不是owner时,存unique_constraint为默认的null
如此当插入第一条type为owner时,unqiue_constraint会存入一个固定值;当插入第二条id相同,type为owner时,id和unique_constraint就会重复,触发数据库约束,完美解决。
标签:记录,解决方案,数据库,constraint,owner,unique,type,id 来源: https://www.cnblogs.com/suppersam/p/15922462.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。