Rails/General SQL 复杂模式的实体属性值

Rails/General SQL entity-attribute-value for complex schema

我在为一组复杂的关系想出一个有效的数据库模型时遇到了一些麻烦,想知道我当前的实现是否能正常工作。

我正在处理特定于位置的数据,在本例中为城市许可,存储许可要求,并将它们与特定位置相关联。因为有很多城市,而且每个城市的许可要求都不一样,所以我正在努力寻找记录特定地点的许可要求进度的最佳方式。

目前,我的架构如下所示:

<permit>
id
type
state
<requirements>
id
key
value
<permit_requirements>
permit_id
requirement_id

这适用于存储所有许可要求并重新调用它们。问题是将它们与特定位置相关联时。目前我有:

<location>
id
state
<location_permits>
permit_id
location_id

这对于返回所有许可(按州过滤)和子要求非常有效。但是为了存储特定需求的状态,我在想:

<location_requirement_answers>
location_id
requirement_id
status

这有意义吗?这是反模式吗?我无法思考从整体上获取许可证的最佳方式,以及每个位置的特定状态。

我认为相关的许可会创建基本列表,然后在更改时我会专门更新 location_requirements_answer。但这是否需要 location_permits 的另一个关系,即 location_permit_answers 基本上会复制原始关系,除了已回答的要求?

非常感谢任何帮助!

仍然无法解决这个问题,但目前看来这是可行的(尽管有太多数据库查询肯定无法扩展的性能问题):

  1. 移除 <location_permits>
  2. permits 属性添加到 location 并按州过滤,这也会引入嵌套 requirements
  3. 用返回的 requirement_id
  4. 查询 location_requirements_answers