У меня есть две таблицы jewelry(j_id,j_name,Description)
и style(style_id,style_name,image)
каждая таблица имеет много-много отношений с другой таблицей, так как один ювелирный продукт может иметь несколько стилей и есть больше продукта того же стиля , поэтому отношения много для многих.
Теперь мой вопрос заключается в том, как я могу связать эти таблицы, т.е. хочу вставить одну запись в таблицу украшений, и для одного ювелирного продукта должно быть несколько стилей.
На странице html jewelry. Я хочу поместить стиль в раскрывающийся список нескольких вариантов, который динамически заполняется из таблицы стилей, и если пользователь хочет выбрать два стиля для одного и того же продукта, они могут.
Я бы порекомендовал 4 стола, 3 для ювелирных изделий и стиля и четвертый для заказов.
Ювелирные изделия: jid (PKEY), jname, описание
Стиль: сид (PKEY), оглушение, описание
Продукт: pid (PKEY), sid (FKEY), джид (FKEY) – один продукт определяет уникальную комбинацию стиля и покрытия
Заказ: oid (PKEY), pid (FKEY), другие данные (имя, адрес и т. Д.),
Для каждого украшения восстанавливайте связанные стили с помощью таблицы продуктов и заполняйте поля на странице html. Для каждого заказа храните идентификатор продукта, который однозначно идентифицирует как драгоценности, так и стиль.
Не уверен, что это вопрос проектирования базы данных. Для меня это больше похоже на вопрос программирования, и в этом случае было бы полезно узнать, какой язык программирования и база данных вы используете.
В любом случае, вот какой-то псевдо-код, который делает то, о чем я думаю, о чем вы спрашиваете.
Add one row in table jewelry Store the new jewelry.j_id to a variable @jid for each @StyleID in SelectedStyleList begin Add one row to table jewelry_style set jewelry_style.j_id=@jid, jewelry_style.style_id = @StyleID end
ваш вопрос заключается не в разработке вашей базы данных для этого отношения «многие ко многим», а о стратегии вставки при создании новых объектов ювелирного стиля и отношений между ними?
В этом случае ваша стратегия должна заключаться в транзакции, вставляющей ваши основные данные и после этого связанной друг с другом. В случае абортов вы можете просто отменить транзакцию, и все, что вы создали, будет удалено. Пока вы находитесь в транзакции и ваш уровень изоляции прав, никто не увидит временно созданные данные