Извините что пропал, но это я ковыряю в свободное от остального время
Сделал Б с уникальным индексом по всему Б и через ON DUPLICATE KEY UPDATE. Протестил, вроде работает как надо.
2 Aeon
Б - самый нижний слой базы. Там только информация (числа) и индекс который увеличивается. Каждое значение в Б уникальное (комбинация). Вся остальная база обращается только к индексу.
Сейчас пытаюсь нарисовать структуру
в этом. Общая цель чтобы если дается та инфа что уже в таблице есть то вытащить пользователю просто линк на нее из А. Насколько я понял это норма 1.
В этом и заключается значение А. Там только индексы на Б и подобные, время (уникальный ключ по всем). Кроме того есть обычный индекс с увеличением и линк (23х значное число, для линка пользователю). Индекс чтобы не таскать это здоровое (медиуминт).
А и Б скорее всего как и предложил
Saruman m:n.
Но у меня не получается вытаскивать уже существующий линк тогда.
Если я иду с низу (Б), то когда я подхожу к свойной таблице АБ у меня есть все что нужно чтобы писать в нее от Б. Но у меня нет индекса из А.
Писать в А я не могу так как у меня нет значения для Б.
В 'А' я должен записать уникальное число из АБ которое будет вести на много уникальных значений Б.
Таблица АБ выглядит как в посте от 29.09.2007, 20:09. При этом композитный ключ будет уникальным (AB_id, B_id).
В общем проблема найти (если существует то не создавать новый, а дать id) или создать в АБ ключ для А (а не наоборот
)
Найти А сложно, он не уникальный в АБ, и их непостоянное количество.
Тогда можно попробовать сделать через
хэш. Вариант Б от
Saruman
Можно это сделать через таблицу куда писать хэш значений Б. Если хэш даст коллизию то будет плохо. Не знаю насколько быстро работает md5, но в худшем случае туда пойдет 180 интов.
Если писать новый А каждый раз то все работает хорошо, но будет создаваться новый линк.
Off:
Я понимаю что вопросов много
, но я нашел 2 книги и в них почти ничего нет именно про дизайн дб. По 1му примеру похожему на пример с манов мускула в сети. А больше спрашивать негде
.