Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SET или связанная таблица? / 10 сообщений из 10, страница 1 из 1
08.09.2015, 08:58:17
    #39045454
XaHyMaH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
Вот в чём вопрос. Есть таблица товаров. Каждый товар может быть в одном или нескольких городах.
Как лучше организовать связь товары <-> города? Сделать таблицу городов и таблицу индексов или добавить столбец SET с перечнем городов?
Изменение списока городов будет весьма редкой операцией.
...
Рейтинг: 0 / 0
08.09.2015, 09:03:44
    #39045457
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
XaHyMaHСделать таблицу городов и таблицу индексовИменно так. Заодно в таблице-связке можно будет хранить дополнительную информацию, например, количество этого товара в этом городе. Или дату последнего завоза. Или еще что-то...
...
Рейтинг: 0 / 0
08.09.2015, 11:57:33
    #39045636
XaHyMaH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
А как в таком случае можно будет сделать выборку нескольких товаров с указанием города, где есть этот товар?
Чтобы получить список вида:
- Товар1: Город1, Город2, Город312
- Товар2: Город17
...
Рейтинг: 0 / 0
08.09.2015, 12:21:33
    #39045677
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
XaHyMaHА как в таком случае можно будет сделать выборку нескольких товаров с указанием города, где есть этот товар?
Чтобы получить список вида:
- Товар1: Город1, Город2, Город312
- Товар2: Город17

такую выборку лучше вообще не получать.
...
Рейтинг: 0 / 0
08.09.2015, 12:33:00
    #39045691
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
XaHyMaHА как в таком случае можно будет сделать выборку нескольких товаров с указанием города, где есть этот товар?
Чтобы получить список вида:
- Товар1: Город1, Город2, Город312
- Товар2: Город17
Учите матчасть. В частности, GROUP_CONCAT().
...
Рейтинг: 0 / 0
08.09.2015, 17:02:18
    #39046085
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
XaHyMaHА как в таком случае можно будет сделать выборку нескольких товаров с указанием города, где есть этот товар?
Чтобы получить список вида:
- Товар1: Город1, Город2, Город312
- Товар2: Город17Если "Город1, Город2, Город312" - это разные поля, то динамическим запросом. Если одно поле, то GROUP_CONCAT().
...
Рейтинг: 0 / 0
09.09.2015, 13:16:27
    #39046887
XaHyMaH
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
Ясно.

А что будет быстрее?
Сперва выбрать все города в массив на ПХП, потом выбрать товары и индексы городов и вывести всё через подстановку Город[Индекс] в ПХП.

Или.

Соорудить выборку сразу из трёх таблиц с двумя левыми джойнами?

SELECT tov.id, tov.name, GROUP_CONCAT( DISTINCT gorod.name
ORDER BY gorod.name ) AS glist
FROM `tov`
LEFT JOIN cross_tovar_gorod ON tov.id = cross_tovar_gorod.tovid
LEFT JOIN gorod ON gorod.id = cross_tovar_gorod.gorid
GROUP BY tov.id
ORDER BY tov.id
...
Рейтинг: 0 / 0
09.09.2015, 13:32:41
    #39046914
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
XaHyMaHСоорудить выборку сразу из трёх таблиц с двумя левыми джойнами?

SELECT tov.id, tov.name, GROUP_CONCAT( DISTINCT gorod.name
ORDER BY gorod.name ) AS glist
FROM `tov`
LEFT JOIN cross_tovar_gorod ON tov.id = cross_tovar_gorod.tovid
LEFT JOIN gorod ON gorod.id = cross_tovar_gorod.gorid
GROUP BY tov.id
ORDER BY tov.idИменно так. Только DISTINCT непонятно зачем, по идее там дублей быть не должно.
...
Рейтинг: 0 / 0
09.09.2015, 13:55:16
    #39046955
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
XaHyMaHА что будет быстрее?
Что быстрее - поручить бухгалтеру принести справку по платежам или поручить ему притащить книгу продаж и составлять эту справку самому?
...
Рейтинг: 0 / 0
09.09.2015, 14:37:48
    #39047032
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SET или связанная таблица?
в БД как и в жизни.... зависит от мозгов бухгалтера и количества папок в книге продаж ))) иногда проще и самому притащить и состряпать...
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SET или связанная таблица? / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]