Как лучше связать 2 таблицы (многое ко многому)?

K
На сайте с 23.10.2004
Offline
159
500

(самодельная админка сайта)

Есть таблица фирм с полями: id_brand, brand_name

Есть таблица магазинов с полями: id_shop, shop_name

Товары одной фирмы могут продаваться в нескольких магазинах, и соответственно, в одном магазине могут продаваться товары нескольких фирм.

Поэтому делаем таблицу с полями: id_shop, id_brand

Какой оптимальный вариант алгоритма для сопоставления фирм и магазинов?

albion
На сайте с 07.10.2005
Offline
247
#1
kravru:
Какой оптимальный вариант алгоритма для сопоставления фирм и магазинов?

Мне кажется самый простой вариант - третья таблица (id_shop, id_brand), куда вносятся id магазина и бренда, и смотреть, что бы не повторялись записи (Вроде сам MYSQL этого делать не позволяет, и поэтому этот контроль нужно проводить программно).

Да, и вам лучше сюда - /ru/forum/development/web

Добавлено:

ИМХО. Здесь лучше сопостовлять товар и магазин, т.к. в магазинах все таки продается товар, а не производитель. Если конечно, в одном магазине не продаются все товары одного производителя.

Dreammaker
На сайте с 20.04.2006
Offline
569
#2
kravru:
Поэтому делаем таблицу с полями: id_shop, id_brand

+ составной PRIMARY индекс на id_shop, id_brand (если InnoDB, то могут быть ещё foreign keys под отдельности на поля, но это уже к решаемой задаче не до конца относится).

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий