如何在Rails应用程序中设置组合键

bal*_*anv 6 ruby-on-rails

我在我的应用程序中使用'foriegner'gem来设置主键,现在我处于在表中设置复合主键的情况.

我在网上搜索了这个,但无法为此找到明确的解决方案.

如果可以使用foreigner gem或任何其他方法在rails应用程序中设置复合键,请建议我.

注意:我正在使用Postgres

谢谢.

Pas*_*cal 1

简短的回答:不要在 Rails 中使用复合 PK(除非由于遗留数据库而被迫这样做)。

虽然目前可能有一些可以使用 gems 的解决方案,但这并不是 ActiveRecord 的工作方式。除非有充分的理由,否则我也不会在 Rails 之外使用复合 PK。它们让很多事情变得更加复杂。

但是:没有什么可以阻止您将复合主键作为替代键并拥有 Rails 默认 PK(postgres:伪类型“serial”,它从序列中提取其值)。只需确保为构成键的那些列添加唯一索引即可。