Я хочу создать систему базы данных (я использую SQLite) и в таблице, где храню историю, храню некоторые значения сотрудника (имя, фамилия, идентификатор и т. Д.) ..) Одно из полей - это некоторые рабочие позиции, которые в настоящее время составляют 3, но в будущем может увеличиться до 4 или 5 ... Что более умно делать?Как сохранить элемент с большим количеством полей
1) Иметь таблицу со всеми полями (среди них: wp1, wp2, wp3), а затем добавить колонку для WP3 или
2) Храните все эти рабочие позиции в таблице diferrent, где я будут иметь 2 поля id
и wp
и хранить различный wp для нескольких записей?
Если только вы дать более конкретные сведения о ваших данных и ограничений, что является «умным», чтобы сделать, это просто вопрос мнения. Укажите данные примера и DDL. – Air
Первое правило [нормализации базы данных] (https://en.wikipedia.org/wiki/Database_normalization) заключается в удалении повторяющихся групп. Второй вариант более гибкий, поскольку вы удаляете повторяющуюся группу рабочих позиций. –
Для 1), очень уродливо писать запросы. Например, «Кто работает в X?»: SELECT name FROM emp WHERE 'X' IN (wp1, wp2, wp3). И вы должны редактировать эти запросы каждый раз, когда вы меняете количество полей. Посмотрите на ответ Ней МакГулгана ниже. Там вам просто нужно присоединиться к обеим таблицам. – yoooshi