Пусть первичным ключом вашей таблицы будет бессмысленное число с автоинкрементом без какого-либо «значения». Затем в этой таблице определите два столбца: project_number
и lesson_number
. Если эти два значения должны быть уникальными, определите индекс UNIQUE
, охватывающий два поля.
Не (!) создайте ключи базы данных, которые будут встраивать в них информацию, даже если бизнес делает так. Если бизнесу необходимо ссылаться на строки типа PR12
, пусть будет ... создайте столбец для хранения соответствующего значения или используйте таблицу «один ко многим». Используйте индексы по мере необходимости для обеспечения уникальности.
Обратите внимание (!), Что я сейчас описал четыре столбца:
- «Фактический» первичный ключ с автоматическим приращением, который не содержит информации.
- Столбец
project_number
, вероятно, внешний ключ к таблице projects
. - То же самое, что
lesson_number
. (С UNIQUE
составной индекс , если необходимо.) - Столбец (или таблица), который содержит «строку, которую использует бизнес».
Со временем деловая практика do меняется. И когда-нибудь вы просто можете ... нет, вы будете ... ... сталкиваться с "используемой бизнесом строкой", которая была неправильно назначена людьми, которые делают такие вещи ! Ваша база данных должна изящно справиться с этим. Схема, которую я описал, - это так называемая третья нормальная форма. Сделайте поиск Google по "нормальным формам", если вы еще этого не сделали.