ruby-on-rails - 我应该将连接表连接到另一个表吗?

标签 ruby-on-rails postgresql database-design

假设我正在构建一个聚餐组织应用程序。我有一个跟踪参与者和事件 (MTM) 的连接表,我还有一个 Dishes 表,其中包含与每个参与者 (OTM) 相关且唯一的菜肴。参与者将报名参加事件并同意携带一份或多份菜肴。

ParticipantEvents 连接表将跟踪 RSVP,但跟踪参与者为该事件贡献了哪些菜肴的最佳方式是什么?

我应该在 Dishes 和 Events 之间创建一个连接表吗? 我应该在 ParticipantEvents 连接表和 Dishes 表 (ParticipantEventsDishes) 之间创建一个连接表吗? 有没有更好的办法?

最佳答案

在我看来,这个案例看起来像是三向(三元)关系。所以我会创建一个三向连接表,带有三个外键。

Promised (DishID, EventID, ParticipantID)

现在您可以将它与所有三个表结合起来,为所有参与者生成详细信息。请注意,参与者可以为一次事件 promise 不止一道菜。

关于ruby-on-rails - 我应该将连接表连接到另一个表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49910481/

相关文章:

ruby-on-rails - Apache2 错误 : Either the vistor clicked on the 'Stop' button in the web browser

ruby-on-rails - Rails 6、React、Rack-Cors

sql - Postgres UPDATE..FROM 查询在同一行上有多个更新

python - 如何只删除 postgres 中的行而不是使用 pandas read_sql_query 方法删除表?

mysql - 多(少)对多(实际上太多)关系的数据库设计

sql-server - SQL跨多个表的唯一约束

ruby-on-rails - 带有 Devise 的 JSON Web token

ruby-on-rails - 将整数转换为二进制字符串,用前导零填充

PostgreSQL 没有复制某些更改(扩展)

database - 如何在我的数据库中实现 Twitter 转发操作