Когда ссылочная целостность не подходит?
Ссылочная целостность, если она обычно не используется в хранилищах данных, где данные являются копией транзакционной базы данных только для чтения.Другой пример, когда вам не нужен RI, - это когда вы хотите регистрировать информацию, которая включает идентификаторы строк;поддержание ссылочной целостности для таблицы журнала, доступной только для чтения, является пустой тратой накладных расходов базы данных.
Целесообразно ли иметь поля, содержащие несколько и / или, возможно, неполные подмножества списка внешнего ключа?
Иногда вам важнее захватывать данные, чем их качество.Представьте, что вы собираете большой объем данных из разрозненных систем, каждая из которых по-своему страдает от проблем с качеством данных.Иногда вы стремитесь к большему благу качества данных, и наличие всего в одном месте, даже со сломанными ключами и т. Д., Является отправной точкой для перехода к истинному качеству данных.Это не идеально, но это случается, потому что подходящие варианты могут перевесить компромиссы.
Как правило, это должно быть решение по проектированию структуры схемы или решение по проектированию интерфейса?(Или, возможно, ни то, ни другое)
Все, что касается разработки систем, сосредоточено на информационной безопасности, и ключевым элементом этого является целостность данных.Структура базы данных должна стремиться к обеспечению выполнения этих вещей, когда это возможно, однако вы часто не имеете дело с современными системами баз данных.Иногда ваш источник данных - старая школа AS400 с давно устаревшими приложениями.Иногда вам приходится создавать уровень данных и бизнеса, обеспечивающий целостность данных.
Только мои мысли.