答案 0 :(得分:1)
根据您的数据模式,您有以下规则:
Incident
可以 MANY Responders
。
Responder
可以有 ONE Device
。
Responder
可以有 ONE res_latitude
和 ONE res_longitude
。
Device
可以有 ONE Dev_installation
。
如果以上是您想要的,那么我认为没关系(但请再次查看主键)。
此外,我忘了提及将responder_id
和device_id
保留在单独的表格中的原因是为了保留device_id
更改responder_id
时的历史数据。您还可以在一个表中将ResponceIncidentDevice
与密钥incident_id, responder_id, device_id
合并,这样您就可以知道应答器在哪些事件中携带了哪些设备。
编辑:
根据您的评论,您需要进行以下更改。另请注意,最好对所有表和列使用小写,以避免由于各种引擎实现而出现区分大小写问题。
Responders
responder_id res_latitude res_longitude
Responders_Devices (pk: responder_id, device_id)
responder_id device_id
1 1
1 2
2 3
2 4
3 5
答案 1 :(得分:0)
嘿,有很多关于这个主题的教程,但它们有点复杂,我能理解你的问题。
首先,您的项目甚至不适用于First Normalization表单,因为您的第二个表RespondersIncidents是一个包含两个外键但没有主键的表。
现在让我为您简化规则。
1NF - 你必须有一个主键(一句话外行定义) 2NF - 无部分依赖关系,尽量不要在一列中包含两个条目,并确保主键唯一标识整行。 3NF - 无功能依赖性,确保在一行中只有您的特定主键能够识别整行。对于例如如果在一行中有主键(自动生成)和学生ID也是唯一的,那么我们在这里有功能依赖,这意味着我们不需要单独的主键,我们可以使用student id作为主键。
我希望这对你有所帮助。我保持简短。