微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

根据其他字段中的值存储其他字段

如何解决根据其他字段中的值存储其他字段

我正在尝试设计一个数据库来存储有关生物信号记录的信息。每个记录使用一个传感器,如果记录使用力传感器,则需要额外的信息来了解传感器的正极和负极端子连接在哪个通道中。对于其他传感器类型,不需要其他信息。

我是 sql 的初学者,我的第一次尝试是创建一个记录表、一个传感器类型表和一个力信号表。对于每条记录,我使用 FK 来指示传感器类型,如果传感器是力传感器,我会在 force_signal 表中添加一行,其中包含附加信息和引用记录 PK 的 FK。

record:
    record_id (PK)
    record_name
    sensor_type_id (FK)
    ... [other fields describing the record]
sensor_type:
    sensor_type_id (PK)
    sensor_name
    ... [additional informations of the sensor type]
force_info:
    force_info_id (PK)
    record_id (FK)
    channel_positive
    channel_negative

事实是,例如,可以使用没有相应 force_info 行的力传感器进行记录(然后我在“如何实现真正的一对一关系?”问题)。有没有更好的结构来满足我的要求并避免一对一的问题?

代替 force_info 中的 FK 引用记录的 PK,我还考虑在记录表中使用 FK 引用 force_info 的 PK,条件为 NOT NULL 仅当 sensor_type_id 对应于力传感器时。对我来说更好,因为它保证每个使用力传感器的记录在 force_info 表中都有一个相关的行。但是,我可以拥有与任何记录无关的 force_info 行(例如,如果我删除了使用力传感器的记录)。这不是什么大问题,因为这些没有相关记录的 force_info 行在我的数据库中会像幽灵一样,不会导致数据完整性问题,但我认为拥有这些幽灵并不是一个好习惯。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。