Хотя я некоторое время работал с запросами к базам данных SQL, я все еще довольно новичок в создании хороших таблиц. Я часто борюсь с первичными ключами.
В таблице, которую я сейчас создаю для регистрации ошибок на некоторых устройствах сигнализации, мне нужно 5 столбцов.
Столбцы park
и code
однозначно идентифицируют сайт (хотя столбец park
не используется). Затем есть столбец serial
, идентифицирующий рассматриваемое оборудование, и error
, содержащий код ошибки. Наконец, есть timestamp
, когда регистрируется ошибка.
Каждый сайт имеет несколько различных единиц оборудования, и часть оборудования может сообщать о нескольких ошибках. После исправления ошибки строка удаляется из таблицы.
Таким образом, чтобы однозначно идентифицировать ошибку, нам нужно проверить park
, code
, serial
и fault
.
Все это кажется хорошими кандидатами в индексы, основанные на запросах, которые могут быть выполнены. Однако мне кажется неправильным определять все это как объединенный первичный ключ, ведь это почти все столбцы в таблице!
Я несколько раз боролся с подобными проблемами, и я никогда не чувствовал, что нашел хорошее решение. Кто-нибудь может предложить несколько хороших методов для таких таблиц, где большинство (или даже все) столбцов необходимы для уникальной идентификации строки?