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

Melkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царствеMelkor Луч света в тёмном царстве
Цитата:
просто в Б хранишь id из А как внешний ключ
Да нет, тут не получится. Для каждого А есть много Б.
Но при этом много А могут ссылаться на одно Б.
Если брать второй вопрос (хотелось бы это объединить в одну систему) то каждое А проверяет есть ли Б и если есть то берет только его ID, на создавая нового Б.
Б - описание самой информации что закладывается в БД.
В итоге получается что если добавляется уже существующая информация то новое Б не создается, просто берется его id и записывается в А (через АБ конечно).
Если меняется одно Б то таким образом оно меняется везде где упоминается. Ну и заобно облегчается контроль количество каждого Б , увеличивать просто счетчик на 1 с помощью АПДЕЙТ.

На этом приходим ко второму вопросу, как эту фигню туда записать. Каждое значение в Б может встречаться во всей таблице дофига раз, но комбинация всех значений только 1.
Тут больше похоже на проблему скорости/места на диске. В моем случае скорость не очень важна.

Вот тут пришел на ум пример, записать синусоиду допустим из 50 точек на период.
Можно просто записывать, быстро и сердито. Время - значение.
А можно брать по несколько точек за раз и присвоить им Id. При записи искать встречается ли эта комбинация и если встречается давать ссылку на нее.
Получаем в первом случае 50 записей типа: время - значение
во втором (10 точек за раз) 5 записей типа: время - линк на таблицу значений точек.

Что-то подобное второму мне бы и хотелось.
__________________
Когда умираешь, да еще так долго и трудно, очень хочется хоть немного насолить живым, просто невозможно удержаться от искушения!
М.Фрай

Последний раз редактировалось Melkor; 30.09.2007 в 01:46.
Melkor вне форума