申请、报价和接受报价的数据库结构

Database structure for application, offer, and accepted offer

我正在尝试为一个 rails 4 网站设置我的数据库,该网站有两种类型的用户,一种填写应用程序,另一种提供应用程序报价 - 其中之一,申请人会接受。

我的问题是弄清楚如何着手 "accepted offers"。 "accepted offers" 应该是一个完全不同的 table 吗?我应该在 "offer" table 中创建一个 "is accepted" 列吗?还是有其他方法可以解决这个问题?

我会在名为 "accepted_offer_id" 的应用程序 table 上放置一个列,引用已接受的报价。

这保证了接受报价的数量为 0 或 1,并且避免了必须实施稍微棘手的逻辑来确保每个应用程序只有一个报价可以具有 "is_accepted" 值 true。

它还可以轻松地允许应用程序 table 与 "belongs_to :accepted_offer"

建立新的关联