首页 / MYSQL / mysql-多对多关系桥表难题
mysql-多对多关系桥表难题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql-多对多关系桥表难题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1525字,纯文字阅读大概需要3分钟。
内容图文
![mysql-多对多关系桥表难题](/upload/InfoBanner/zyjiaocheng/888/60df6a621213452d97b15bbe70e99055.jpg)
salesman
========
uId
salesGroupLinked
================
uId
groupId
//add performacesScore field here
group
======
groupId
我上面有3个表,这些表形成了多对多关系,我将添加一个字段“性能”(INT),以便每个业务员在每个组中都有一个得分.而且我认为它应该位于salesGroupLinked表中.但是由于uId和groupId为FK,所以我无法插入/编辑数据(我正在使用phpmyadmin).我不能使performacesScore字段唯一,因为它们可以是相同的值,例如推销员获得10,而另一个获得相同.
我得到了这个味精:
This table does not contain a unique column. Grid edit, checkbox,
Edit, Copy and Delete features are not available.
描述salesGroupLinked
解决方法:
该工具只是告诉您uId-groupId组合可以有多个条目.例:
uId groupId performacesScore 1 1 10 1 2 20 2 1 30 2 1 30 2 1 40 2 2 20
现在,假设已显示此数据,您将第一个2/1/30设为2/1/50.该工具可以将哪些更新语句发送到dbms?
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1;
这将更新三个记录而不是一个.
update salesGroupLinked set performacesScore = 50
where uId = 2 and groupId = 1 and performacesScore = 30;
这仍将更新两个记录,而不是一个.
因此,为了正确更新和删除,您必须告诉dbms是什么使记录唯一.有四种可能性:
>如果您永远不想更新或删除单个记录,请保持原样.
>如果要更新,并且uId-groupId组合只能有一个条目,则告诉dbms,然后将uId加groupId用作表的主键.
>如果您希望能够更新,并且uId-groupId组合可以有重复项,但是uId-groupId-performacesScore组合将始终是唯一的,则将这三个作为表的主键.
>如果您希望进行更新,并且任何组合都可能有重复项,那么请在表格的另一列中输入技术ID,并将其作为主键.
内容总结
以上是互联网集市为您收集整理的mysql-多对多关系桥表难题全部内容,希望文章能够帮你解决mysql-多对多关系桥表难题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。