Ранее сегодня я задал этот вопрос , который возник из-за моего плохого планирования и моего полного игнорирования практики нормализации баз данных. Последние 8 часов я читал о нормализации баз данных и тонкостях JOIN и пробирался по учебникам SQLZoo.com.
Я просветленный. Я понимаю цель нормализации базы данных и как она может подойти мне. За исключением того, что я не совсем уверен, как реализовать это видение с процедурной точки зрения.
Вот мое старое видение: 1 таблица, называемая «файлами», в которой хранится, скажем, идентификатор файла и URL-адрес файла, и соответствующие уровни оценки для этого файла.
Новое видение !: 1 таблица для «файлов», 1 таблица для «оценок» и промежуточная таблица соединений.
Но это не моя проблема. Это действительно базовый вопрос, на который, я уверен, есть очевидный ответ: когда я создаю запись в «файлах», ей автоматически присваивается увеличенный первичный ключ (file_id). Однако теперь мне нужно записать этот file_id и в другие таблицы. Поскольку я не назначаю этот идентификатор вручную, как я узнаю, что это такое?
Если я загружаю text.doc и получаю file_id 123, откуда мне знать, что у него 123, чтобы записать его в «классы» и в таблицу соединений? Я не могу сделать max (file_id), потому что если у вас есть одновременные пользователи, вы можете получить другой идентификатор. Я просто не знаю, как получить значение file_id, не назначив его вручную.