当前位置: 首页 > 面试题库 >

多对多关系 bridge table dilemma

壤驷英叡
2023-03-14
问题内容

salesman
========
uId

salesGroupLinked
================
uId
groupId
//add performacesScore field here

group
======
groupId

我上面有3个表,这些表形成了多对多关系,我将添加一个
字段“性能”(INT),以便每个业务员在每个
组中都有一个得分。而且我认为它应该位于salesGroupLinked表中。但是由于
uId和groupId为FK,所以我无法插入/编辑数据(我使用的是phpmyadmin)。
我不能使performacesScore字段唯一,因为它们可以是相同的值
,例如推销员获得10,而另一个获得相同。

我得到了这个味精:

该表不包含唯一列。网格编辑,复选框,编辑,复制
和删除功能不可用。

描述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;

This would update three records instead of one.

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,并将其作为主键。


 类似资料:
  • 问题内容: 伙计们,我正在努力为我的公司制作一个简单的票证生成系统,以吸引人。目前,我的MSSQL数据库中有一个名为的表,另一个名为的表。 我的应用程序是C#Windows窗体,因此在新的票证生成窗体上,我有许多文本框和一个用于分配工程师的comboBox,由填充。生成票证后,以这种形式输入的所有信息都将与from一起存储。 效果很好,但是后来我的客户要求我添加选项,以便可以在一张票上分配3名工程

  • 问题内容: 我目前正在使用ActiveAndroid,并且在过去的几个小时里一直在尝试建立多对多关系,但是我还是无法正常工作。我希望你能帮助我: 我有“学生”和“课程”的模型,一个学生可以有很多课程,而一个课程有很多学生。基本上,这就是我在“ StudentCourse”模型中所拥有的: 现在,我要做的是使用以下代码获取“课程X中的所有学生”: 但是我收到以下错误: java.lang.Class

  • 在本章中,让我们了解和学习多对多的关系。要表示多对多关系,必须创建第三个表(通常称为联接表),将多对多关系分解为两个一对多关系。 为此,我们还需要添加一个联接表。 下面先添加一个表。表的定义如下所示 - 现在创建一个多对多的关系。假设有多个作者在多个项目上工作,反之亦然。 如您所知,我们在中有一个字段,所以为它创建了一个表。但现在不再需要这个字段了。 选择字段,然后按下删除 按钮,将看到以下消息。

  • 我还想知道如何定义每个模型上的关系--你是否需要或者是否可以只在用户上定义关系?

  • 问题内容: 我有三个表:应用程序,权限和applications_permissions 对于应用程序,有两类:免费和商业类(价格=‘0’和价格!=‘0’) 现在,我想为每个许可都知道有多少百分比的应用程序引用了它。而这两个类别 自由: 商业的: 我已经计算出以下查询,但其中不包含没有应用程序的权限ID:/ 我该怎么做呢?我已经尝试了几个小时了(该查询,其他联接),但这使我难以捉摸:/ 问题答案:

  • 问题内容: 我在这里和google中都没有找到任何MYSQL多对多关系示例。我正在寻找的是使用php + mysql显示数据库结果的非常简单的示例。有人可以写一个非常简单的例子吗? 问题答案: 示例场景:大学中的学生和课程。给定的学生可能正在参加几门课程,并且自然而然地,一门课程通常会有很多学生。 示例表,简单设计: 查找所有注册课程的学生: 查找给定学生参加的所有课程:

  • 问题内容: 假设我有一个具有两个不同的一对多关系的对象。很像: 和 假设我的对象有两个与这两个对象相关的列表。 我已经阅读了以下示例:http : //forum.springsource.org/showthread.php?50617-rowmapper -with-one-to-many- query,其中说明了如何使用单个一对多关系来执行此操作。为了您的方便,这里是替代: 我认为这并不涉及