问题标签 [candidate-key]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 候选键和复合键有什么区别?
我正在阅读有关候选键和复合键的信息。我才知道
- 候选键可以作为主键,它可以是单个列或列组合
- 复合键也是列的组合。
对于复合键,我参考了这个链接
如何使用 SQL Server Management Studio 创建复合键?
因此,当候选键和组合键都是列的组合时,它们可以作为主键。那么确切的区别是什么?你能用例子解释一下吗?
relational-database - 具有功能依赖关系的候选密钥识别
我无法理解如何识别功能依赖项中的键。我一直在看例子,例如:
给定关系 ABCD,找出不包括
这给出了键 C 和 A。我认为解决这个问题的方式是 BC 和 D 都依赖于 A 和 C,而 AB 依赖于 CD,这意味着它们三个都是键,但是由于 CD 是超级键(C 是一个子集也是一个键),CD 不被视为最小超键。
然而,在另一个例子中,
这里唯一的关键显然是 BE。为什么这是真的,任何人都可以澄清寻找解决这些问题的关键的步骤吗?
谢谢。
php - 如何在 SQL (postgres) 中实现优先级
我正在编写一些需要将项目存储在数据库中的软件,这些项目需要有一个“优先级”,所以我们最终得到
所以现在,最优先的水果是橙子,然后是苹果,然后是香蕉,然后是梨。
现在,我想让梨成为第一要务,然后是梨、橙子、苹果、香蕉。该表将如下所示:
使用 PHP 和 Postgres 实现这一目标的最佳方法是什么。鉴于该表不会超过 12-13 个项目,我考虑过在更新所有内容之前选择整个表并重写优先级。
* 重要的 *
可以按任何顺序更改优先级,因此可以将优先级 7 设置为优先级 3(从而将低于优先级 3 的所有内容降低一个档次),我们需要缩小优先级为 7 的项目已移至优先级 3 留下的差距在优先列表中。
hibernate - 如何将 GUID(不是 PK)添加到 JPA Hibernate Mapping 中已经具有 PK(整数)的现有实体
我已经有一个 id 为 Integer 的实体类。作为要求,我们需要为此添加一个 GUID,目前不会是 PK。但是应该在创建新实体时自动填充。(现有的会将这个新的列 GUID 设为 NULL)。此表中的每个新条目都没有填充 GUID(以 NULL 形式出现)。请帮忙。
@实体
@Table(name = "TABLEA")
公共课表A
{
}
database - RDBMS 密钥混淆
我对候选键、主键、最小超键有些困惑。
根据定义:
主键:只有一个属性,所以它必须是最小超键,它也是一个候选键(因为它的最小超键)
第一个结论:如果一个键是主键,那么它也是一个候选键和一个最小超键
以下几点我认为是真的,但我不确定。有人可以和我一起确认吗?
如果它是最小超键,并不意味着它是主键。但这意味着它是候选键。
如果是候选键,不一定是最小键,也不一定是主键。
结论:
主键:只有 1 个值,可以识别整行。它也是候选键和最小
最小超键:1 个值或字段组合可以识别整行,因此它是候选键,但不是必需的主键。但是如果取出任何一个字段,那么它就不再是钥匙了
候选键:1 个值或字段组合可以识别整行,但不必是最小的或主要的。
database - 如果我找不到表的候选键(规范化)怎么办?
我试图了解规范化的确切工作原理并将其应用于我拥有的某些特定项目中。我在几个视频中看到第一步是定义一个候选键。
我想问,如果我拥有的所有字段(或这些字段的组合)都不是唯一的,会发生什么?例如,我有一个名为 Receiver 的字段。但我知道它是重复的。我想将它与名为 Time_Of_Week 的字段结合起来,但该字段也每周重复一次。最后我想将它与字段 Week_Number 结合起来,但这个字段也每年重复一次。
是定义自动增量主键的唯一解决方案吗?
谢谢 d.
sql - Access 2007:删除部分重复的行
我在导入 Access 2007 的 Excel 电子表格中有数据。有一个候选键 (CN)。对于具有相同 CN 的那些行,所有列的数据都不同。下面的示例(实际数据有 100 列,并且 MsgNum 可能变化更频繁,尚未与其他实例确认此模式,因此尽管我尝试对其进行选择,但解决方案可能应该忽略 CN 和 MsgNum 的组合可能是唯一的)。
我无权访问 SQL Server。我只有 Access 2007。我不想使用 Excel 的删除重复程序,因为我得到的数据在导出到 Excel 之前来自 Access,所以我试图找到一个解决方案来通过 Access 删除重复项。
在 Access 的查询设计中使用 SQL,我尝试在 WHERE 子句中使用子查询,该子查询按 CN 分组,保留计数为 1 的那些,但删除所有实例并且不保留至少一个。
我尝试只选择两列(CN 和 MIN(MsgNum))——适当地分组——这给了我想要的,但是当我使用所有指定的列(总共 100 列)运行它时,我仍然得到重复。
我尝试了查询向导查找单个列的重复项并返回其余列,这有助于在视图中隔离重复项。由于我无法设置任何主键,我不确定如何加入这些表。在对所有列运行上一个 MIN 查询时,我遇到了与以前相同的问题。
我试图在 WHERE 子句中设置一些东西来比较两列的组合,但我读到那是不可能的。所以,我不知道如何解决这个有候选键但该候选键列上的重复项的记录中的信息不同的问题。我想要做的是 Excel 2007 的 Remove Duplicates 过程所做的,其中可以删除一列上的重复项并保留其他列。
functional-dependencies - 从功能依赖中找到候选键
对于具有以下功能依赖关系的关系 {A,B,C,D} -
使用我在其中一个站点上找到的特定方法,我将候选键作为 ABCD。那正确吗 ?什么是正确的候选键?
mysql - 如何将主要属性从一个属性更改为另一个属性。mysql
我有一个数据库,我在其中声明了一个主键。后来在实现数据库时,我意识到我必须创建一个自动递增代理键并将我当前的主键切换到那个,因为我当前的主键不可避免地会出现多次。我已经探索了堆栈溢出的深度和其他寻找答案的网站,但我找不到合理的解决方案。
具体来说,我正在为兄弟会制作这个数据库,其中每个成员都以唯一的滚动编号启动。使用滚动编号作为主键似乎是一个好主意,直到我意识到拥有多个学习专业的成员将有两个元组(一个表示每个专业,数据库必须在 3NF 中)。考虑到这一点,创建代理键是可行的方法,还是有更合理的问题解决方案?
asp.net-mvc - (MVC3/Entity Framework) 如何在使用候选键作为外键的数据库中执行 CRUD 操作
我是 MVC3 和 Web 开发的完整初学者。
我的客户端数据库使用一个表的唯一候选键作为另一个表的外键。我无法改变数据库的设计方式。我有从数据库表派生的模型。我知道实体框架不支持候选键作为另一个表的外键。
所以我的问题是,专业人士如何解决实体框架的这种限制?