Рассмотрим это очень маленькое надуманное подмножество моей схемы:
SensorType1
ID : PK
SensorType2
ID : PK
Reading
Timestamp
Value
SensorType1_ID FK -> SensorType1
SensorType2_ID FK -> SensorType2
Некоторые показания для SensorType1, некоторые для SensorType2. Я, вероятно, добавил бы ограничение, чтобы гарантировать, что один из тех FK всегда указывает куда-то.
В прошлом я много читал о том, что NULL FK является очень плохим дизайном, но я боролся со своей схемой в течение нескольких дней (см. Предыдущие посты), и независимо от того, каким образом я крутил и поворачивал ее, я либо заканчивал где-то с FK, поддерживающим NULL, или мне приходится дублировать мою таблицу считывания (и ее зависимости) для каждого типа датчика (3).
Сказанное выше, похоже, хорошо решает проблему, но почему-то оставляет у меня во рту не очень приятный вкус. Это единственное место во всей моей схеме, где я допускаю пустые поля.
Я думал, что небольшая рецензия поможет мне принять это, прежде чем я продолжу.
Спасибо!