395得票5回答
使用空列创建唯一约束

我有一个表格,其布局如下:CREATE TABLE Favorites ( FavoriteId uuid NOT NULL PRIMARY KEY, UserId uuid NOT NULL, RecipeId uuid NOT NULL, MenuId uuid ); 我想...

278得票38回答
外键有什么问题吗?

我记得在Joel Spolsky的014 播客中听到他说他几乎从未使用过外键(如果我没记错的话)。然而,对我来说,它们似乎非常重要,以避免在整个数据库中出现重复和随后的数据完整性问题。 人们有没有一些充分的理由(为了避免与 Stack Overflow 原则相悖的讨论)? "我还没有创建外...

64得票1回答
MySQL外键允许为空吗?

我正在构建一个图像网站。基本的模式是使用MySQL,但是我在尝试表示与图像相关联的可能的管理员标志("不适当","版权"等)时遇到了一些麻烦。 我目前的想法如下:tblImages ( imageID INT UNSIGNED NOT NULL AUTO_INCREMENT, ...

64得票3回答
在MySQL中,我可以将引用完整性检查推迟到提交时吗?

如同这个问题所述,我正在阅读 PoEAA 并想知道在 MySQL 中是否能够推迟参照完整性检查到提交时。 当我想要在同一次提交中插入一堆产品及其相关产品时,我遇到了这个问题。即使在事务内部,当我尝试插入到 related_products 连接表时,也会出现约束错误。 如果可以的话,我正在...

51得票4回答
通过约束条件检查远程关联表中的值(通过连接等方式)。

我希望添加一个约束,它将检查相关表中的值。 我有3个表:CREATE TABLE somethink_usr_rel ( user_id BIGINT NOT NULL, stomethink_id BIGINT NOT NULL ); CREATE TABLE usr (...

42得票3回答
Rails: delete cascade与dependent destroy的区别

假设我有两个表:users和orders。一个用户有多个订单,所以我的orders表中自然有一个外键user_id。在Rails中,如何才能最好地保证如果一个用户被删除,所有相关的订单也会被删除(从速度、风格和引用完整性角度考虑)? 我正在考虑以下选项:情况1:在用户模型中使用:depende...

36得票7回答
如何在Postgres 8.2中禁用参照完整性?

谷歌对此问题的结果有些匮乏,但表明这并不容易实现。 我的具体问题是,我需要重新编号两个相关联的表中的ID,使得表B中有一个“table_a_id”列。我不能先重新编号表A,因为它在B中的子级指向旧ID。我也不能先重新编号表B,因为它们会在创建之前指向新ID。现在重复三到四个表。 我不想通过...

36得票9回答
维护参照完整性 - 好还是坏?

我们计划在数据库中使用触发器和单独的历史记录表来引入简单的审计追踪。例如,考虑StudentScore表,它具有一些外键(例如,StudentID、CourseID),将其链接到相应的父表(Student和Course)。Table StudentScore ( StudentScor...

35得票5回答
Rails迁移为什么要在应用中定义外键而不是在数据库中定义?

如果我在 Customer 和 Order 模型中定义了一个 Customer "有多个" Orders,并且 Order "属于" Customer,在 Rails 中我们谈论到 Order 通过 customer_id 与 Customer 有一个外键关系,但我们并不意味着这是在数据库中强...

23得票11回答
是否应该强制执行引用完整性?

不执行引用完整性的原因之一是性能。因为Db必须针对关系验证所有更新,这会使事情变慢,但是实施和不实施的其他利弊如何? 因为关系在业务逻辑层中已经得到维护了,所以让数据库再次维护它们就显得多余了。您对此有什么想法?