何时在连接表上设置没有主键的表

发布于 2024-10-13 18:49:00 字数 310 浏览 7 评论 0原文

嘿,我正在使用下表。我的表 course_enrollments 引用了 user_idcourse_id。组合的两列均设置为唯一。

用户
课程注册
courses

Rails 默认设置主键。我读过一些人的文章,他们使用这种类型的连接表,没有任何PK。例如通过定义 :id => false

适合这种连接表吗?人们注册或退出课程或寻找注册的情况又如何呢?感谢您抽出时间!

Hey I am using the following tables. My table course_enrollments references the user_id and the course_id. Both columns combined are set unique.

users
course_enrollments
courses

Rails sets primary keys by default. I have read some articles of people who used these kind of join tables without any pk. e.g. by defining :id => false

Is it appropriate for this kind of join table? what about people enrolling or leaving courses or the search for enrollments. Thanks for your time!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

小嗷兮 2024-10-20 18:49:00

您通常会看到 :id =>当您想要使用 has_and_belongs_to_many 时,请在连接表的迁移上设置 false ,因为 Rails 确实不喜欢在这些表上查找 :id 主键。

来自 has_and_belongs_to_many 文档

连接表不应有
主键或与之关联的模型
它。

You generally see :id => false on the migration for your join table when you want to use has_and_belongs_to_many, since Rails really doesn't like finding an :id primary key on these.

From the has_and_belongs_to_many docs

The join table should not have a
primary key or a model associated with
it.

半步萧音过轻尘 2024-10-20 18:49:00

合并后的两列均设置为唯一

因此您的表已经有一个键。除非您需要其他属性,否则显然不需要为其创建另一个密钥。

Both columns combined are set unique

Therefore your table already has a key. Unless you require other attributes there is no obvious need to make another key for it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文