我正在寻找有关存储调查、问题和响应的最佳关系建模方法的建议。
我正在寻找以下两种方法中的哪一种看起来最好,或者另一种方法。
我至少有这些实体:
至少有这些关系:
这就是我遇到麻烦的地方:如何对一个人对调查问题的回答进行建模。
这是我考虑过的两种方法,对我来说似乎都不是很好。此处的图表已大大简化以说明问题。
我不喜欢这种方法的地方:
survey_person_question_response
表有两个不同的列引用调查:survey_question_survey_id
和survey_person_survey_id
survey_id
在这两列的一行中引用不同的是错误的。survey_question 必须与该人在survey_person 中进行的调查来自同一个调查。我看不出有什么好的方法来强制执行此操作。方法二:
尽量避免方法 1 中的两个 FK 应该引用相同的值......
我不喜欢这种方法的地方:
question_id
和survey_id
FK 来自有效的survey_question
对survey_id
和person_id
FK 来自有效的survey_person
对任何建议:
将不胜感激!
我有两个具有相同架构的 Postgresql 数据库,我想将它们合并(或将它们合并到第三个)。
问题是这些表都有 id PK,它们是自动递增主键,并使用这些 id 列作为其他表的 FK。
我知道两个数据库之间的数据在逻辑上是不同的,但它们的 PK 重叠,例如:
数据库A:
表构建:
id | name
1 | Smooth Hall
2 | Orchard Towers
桌子地板:
id | building_id (FK building.id) | floor_number
1 | 1 | 1
2 | 2 | 1
3 | 2 | 2
数据库B:
表构建:
id | name
1 | Chancey Theater
2 | Allen Hall
桌子地板:
id | building_id (FK building.id) | floor_number
1 | 1 | 1
2 | 2 | 1
3 …