salesman
========
uId
salesGroupLinked
================
uId
groupId
//add performacesScore field here
group
======
groupId
我上面有 3 个表,形成了多对多关系,我会添加一个字段“performaces”(INT),以便每个销售员在每个组中都有一个分数。我相信它应该位于 salesGroupLinked 表中。但由于 uId 和 groupId 是 FK,我无法插入/编辑数据(我使用的是 phpmyadmin)。我无法使 PerformacesScore 字段唯一,因为它们可以具有相同的值,例如销售员获得 10,而另一个销售员获得相同的值。
我收到这条消息:
该表不包含唯一列。网格编辑、复选框、
编辑、复制和删除功能不可用。
describe 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 并将其作为主键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)