问题标签 [foreign-key-relationship]
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 映射
这是一个 SQL 设计问题。首先,设置。我有三张桌子:
- A,根据对链接服务器的查询自动填充。此表中的数据不能更改;
- B,只有十几行,包含 As 集合的名称;
- AtoB,这是将 As 组织成命名集合的映射表,两列都有外键;
例如,A 包含:
- 长颈鹿
- 猫头鹰
- 老虎
B 包含:
- 西雅图动物园
- 圣何塞动物园
AtoB 包含:
1,1(西雅图的长颈鹿)
2,1(西雅图的猫头鹰)
3,1(西雅图的老虎)
2,2(圣何塞的猫头鹰)
现在,问题:
我被要求在其中一些集合中包含 A 中没有的项目。因此,我创建了一个表 C,它具有与 A 相同的标识和名称列,并填充它。与前面的示例保持一致,假设 C 包含:
- 龙
问题是,如何在 AtoB 中包含来自 C 的项目?如果我需要在西雅图动物园里放一条龙怎么办?
天真的我的第一直觉是创建一个包含 A 和 C 联合的视图 V,并将 AtoB 修改为 VtoB。这就是我的天真得到回报的地方:无法为视图创建外键。
我怀疑有一种标准的、正确的方法可以将一个或多个 A 或 C 与 B 联系起来。
ruby-on-rails - HABTM,还是多个belongs_to?
我正在自学 Rails,作为一个测试项目,我正在模拟一个类似于 stackoverflow 的简单问答应用程序。
在我的简化版本中,我有:
- 问题
- 答案
- 用户(问题和答案的作者)
- 用户和问题之间的正确关系是什么?
- 用户和答案之间的正确关系是什么?
在我看来,问题和答案并不是真正“属于”用户,而是问题和答案“有一个用户”(作者)。但这似乎也不对,因为这样用户就会“belong_to question”和“belong_to answer”。
HABTM 是三个类别之间的答案吗?
很多人都被这种关系所困扰,不是吗?:)
php - 外键,关系问题
我今天一直在玩 MySQL 并阅读他们的文档,获得了一些关于优化的方便信息以及很多我不知道的东西。现在我一直在向我的 Web 应用程序添加外键,因为它添加了约束,我认为它很有帮助。
我的疑问是,现在有一个 Roles 表和一个 Users 表,我在用户的 RoleID 上设置了一个关系,当角色 ID 被删除时(从 Roles 表,父级),它应该删除用户。
现在我有点答案了,但我更喜欢有人确认,ID 必须匹配?还是无论是否匹配,外键都会采取行动?
database - 您是否会在自然 ID 上创建关系或使用内部 ID 并模拟自然 ID 关系?
可能的重复:
代理与。自然/业务密钥
如果给定两个表,Level1 [ID, Title, Number] Level2 [ID, FKID???, Title, Number]
系统用户了解 Level2 与 Level1 相关,基于 Level1 的编号,我的问题是,您是根据内部 ID 建立关系并“模拟”与“编号”的关系还是简单地使用“数字”字段又可以用了吗?
sql-server-2005 - 无法创建表关系 - SQL Server 2005
尝试在 Sql Server 2005 中的两个表中创建关系时出现错误。我正在尝试使用数据库图表功能创建关系。我有一个 Player 表和一个 Message 表。我想创建从 Message 表到 Player 表的两个关系。我可以成功创建从 Message.From 到 Player.PlayerId 的第一个关系。当我尝试创建从 Message.To 到 Player.PlayerId 的第二个关系时,我收到一条错误消息...
'Player' 表已成功保存 'Message' 表 - 无法创建关系 'FK_Message_Player_To'。ALTER TABLE 语句与 FOREIGN KEY 约束“FK_Message_Player_To”冲突。冲突发生在数据库“TPF”、表“dbo.Player”、列“PlayerId”中。
我想知道解决这个问题的最佳方法是什么。非常感谢任何解释。
mysql - MySQL Basic 关于关系
我的疑问是如何处理以下事情:
我有一个用户属于公司的系统,而这个用户有他们的客户。
获取所有公司客户列表和关注用户名的正确方法是什么?
在客户表中,我有一个具有这种关系之一的字段:
- company_id 和 user_id 字段
- 只是 company_id 字段
- 只是 user_id 字段导致用户表有 company_id ???
- 还有什么...
Tkz罗伯托
doctrine - 外交关系的原则性行为
我有一个数据库设计案例,我很好奇 Doctrine ORM 是否支持开箱即用。
产品:
列:
id:{type:integer,primary:true,autoincrement:true}
type_id:{type:integer,notnull:true}
brand_id:{type:integer,notnull:true}
关系:
ProductType:
class:ProductType
local: type_id
国外:id
品牌:
类:品牌
本地:brand_id
国外:id
ProductType :
actAs :
I18n:
fields: { name }
columns :
id: {type: integer, primary: true, autoincrement: true }
name: { type: string(255), notnull: true }
品牌:
actAs:
I18n:
字段:{名称}
列:
id:{类型:整数,主要:真,自动增量:真}
名称:{类型:字符串(255),notnull:真}
我想 slugify Products 表,即。产品将通过它们的蛞蝓到达。但是,正如您所见,brand 表和 productype 表都有 i18n 行为。而且,产品没有名称。产品的 slug 将是:“Brand.name - ProductType.name”,并随服务的语言而变化。
对于这种情况,无论如何我可以使用 Doctrine 的 Sluggable 行为来自动对我的产品进行 sluggify。还是我必须手动管理它?
顺便说一下,我的环境配置是:
Doctrine Version : 1.2
Symfony : 1.4.1
谢谢
asp.net-mvc - 外键在 Linq2Sql 的链接表中不起作用
我有 3 个表 Subcontract、Company 和一个链接表 CompanyToSubcontract。链接表包含 Subcontract_id 和 Company_id。外键是在 SQL 中设置的,当我将它们放入我的 dbml 时,一对多的关系箭头出现了,一切看起来都很好。但是,在编码时,就好像这种关系不存在一样。
当我编写 Select 语句时,我必须使用连接才能使其工作。当我在代码中引用 CompanyToSubcontract 时,我没有可用的正确成员。我有 CompanyToSubcontract.company_id 和 CompanyToSubcontract.subcontract_id,但没有 CompanyToSubcontract.company 或 CompanyToSubcontract.subcontract。
我有另一个表 Group 与 Subcontracts 具有一对多的关系。我以同样的方式设置外键,效果很好。我可以访问 Subcontract.group_id 以及 Subcontract.group。
链接表的所有内容似乎都已正确设置,但我无法使其正常工作。多个外键是否有某种技巧?我错过了什么?
编辑:我的 CompanyToSubcontract 没有主键。这会导致问题吗?马上试试。
sql - 在主键和外键方面需要帮助
在外键表中插入数据时,我需要帮助自动填充外键表中的主键值。例如:我创建了表:
假设此表中有 5 行Patient
:假设第一行值为:1, Priya, Kumari, Female
我创建了Guardians
表格:
在这个表中插入操作是这样的:
在选择显示值的监护人表 PatientIdNULL
时:我的查询是在Guardians
表中插入值时PatientId
应该自动填充,这将来自Patient
表...
- 我的第二个问题是:如何将 Identity 列创建为
varchar
. 例如:假设我想用'这样的方式增加我的Guardians
表......GRD0001', 'GRD0002', 'GRD0003'
谢谢,标清
perl - 如何在运行时使用 DBIx::Class 和 Catalyst 添加关系?
在我正在构建的应用程序中,用户可以指定表之间的关系。
由于我只在运行时确定这一点,因此我无法在模式模块中指定 has_many 或 belongs_to 关系以进行启动。
所以给定两张表;系统和地点,我想添加关系以连接它们之间的记录。
我有以下解决方案的一部分:
因此,该列fk0
将是映射到位置主键的外键id
。
我知道必须重新注册才能允许将来访问该关系,但我无法弄清楚。