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

问题描述

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

我是 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 (将#修改为@)