【发布时间】:2014-05-30 11:04:49
【问题描述】:
我有一个带有 rails 的 mysql 数据库,以及一个我想在多个表中创建唯一的列“速记”(字符串)。有没有办法在不制作第三张桌子的情况下做到这一点?
Expression
id
shorthand
...
etc
Variable
id
shorthand
...
etc
我希望两个表的“速记”列中的值在彼此之间是唯一的,即。如果数据库中已经存在速记值为“xyz”的变量,则表达式中的记录速记值“xyz”将被拒绝。
任何想法表示赞赏,甚至“你必须使用第三张桌子”:)
【问题讨论】:
-
我认为,如果没有第三张桌子,您将无法做到这一点。
-
基于触发器的约束可以做到。
-
把它们放在同一个表中,或者使用第三个表加触发器。或者在
NOT EXISTS上使用相互触发组件。
标签: ruby-on-rails mysql2