У меня есть MySQL DB с 2 таблицами:
- sample_name (хранит имя файла, несколько имен для одного и того же sample_hash);
- sample_hash (хранит хэши файла, не будет хранить дубликаты md5);
(все таблицы имеют id
int без знака NOT NULL auto_increment)
Мой первый вариант связать эти две таблицы - создать столбец md5 в обеих таблицах и связать их. Однако, похоже, у этого есть недостаток, так как я буду дублировать varchar (32), который может быть пустой тратой пространства с миллионами записей.
Мой второй вариант - сначала вычислить хэши файлов, взять mysql_insert_id()
таблицы sample_hash и вставить в таблицу sample_name. Это имеет смысл, если хэш в таблице sample_hash является новым, поэтому в моем распоряжении есть переменная mysql_insert_id()
.
Но если хеш уже существует в samples_db, я не хочу снова хранить хеш, поэтому у меня не будет mysql_insert_id()
.
Есть ли альтернатива, кроме поиска идентификатора данного md5, чтобы сохранить его в таблице samples_name в случае, если md5 уже существует? Если так, как я могу это сделать?