Показать сообщение отдельно
Старый 05.10.2007, 02:39     # 15
Melkor
Full Member
 
Аватар для Melkor
 
Регистрация: 25.11.2001
Адрес: Imho.ws
Сообщения: 941

Melkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царстве
Да, сорри. Вот как это выглядит (аттач).
Папка с голубыми значками - уникальные ключи (что под папкой)
Все что с 'FK' создано програмой, не правильно. Все что с _id это уникальные ключи которые передаются.

В таблицах basic находится сама инфа. Каждой комбинации присваивается свой ID, комбинация повторяется в таблице только 1 раз (уникальная).
ID из basic идет в sample. Там они пишется порядок в котором они идут относительно другим в этот раз. Сюда идет произвольное количесов basic. Комбиниция всех значений тоже уникальная.
В hash идет хэш (мд5) всех значений из sample. md5(sample_1.sample_2... sample_n). Им присваивается индекс hash_id. Сюда прога добавила кучу других индексов, но тут должно их быть только 2 (hash_id и хэш всех значений sample). Комбинация этих 2х уникальная.
В navtable идет hash_id и подобные. Комбинация как вы уже догадались должна получиться уникальная

Как происходит запись:
записать в basic (да и везде) INSERT... ON DUPLICATE KEY UPDATE. Получить последний вставленный id. При этом используется id уже существующейкомбинации если она существует.

каждое значение basic_1, basic_2 получают свой порядковый номер в sample. Опять же если такое уже есть то берется только id. Так как комбинаций несколько то берется их хэш.

Этот хэш является sample_hash в таблице hash. Тут он получает hash_id и еще несколько вещей (не рисовал). Используется существующий ид если есть. Можно так же писать сам хэш сразу в navtable.

Hash_id идет в navtable, где получает дату, линк наружу и еще парочку подобных ключей.

Все что с _id = primary key not null auto_increasement.

Таким образом если внутрь идет уже существующая комбинация несколько раз то наружу для всех них будет только один линк.
Если внутрь идет та же что-то из уже существующего (допустим просто в другом порядке) то создается только новая navtable и hash (таблица, да и то не всегда).

Будет такое работать? ))
Изображения
Тип файла: png model_hash.png (48.2 Кбайт, 8 просмотров - Кто скачивал? )
__________________
Когда умираешь, да еще так долго и трудно, очень хочется хоть немного насолить живым, просто невозможно удержаться от искушения!
М.Фрай

Последний раз редактировалось Melkor; 05.10.2007 в 04:17. Причина: дописал.
Melkor вне форума