|
|
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть БД рестораны: таблица_1: restaurants(rest_id(pk), rest_title, ...); таблица_2(статический список кухонь из которого в админке будут добавлять нужные кухни для определенного ресторана): kitchens(kitch_id(PK), kitch_title); Подскажите пожалуйста, как правильно связать рестораны и кухни, чтобы быстро можно было выбрать все рестораны с кухней, например, "японской". Нужно делать еще 1 дополнительную табличку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:04 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
То есть мне нужно хранить гдето для каждого ресторана список id кухонь, которые в нем есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:07 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
Прямо просится "многие-ко-многим" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:08 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
asmasЗдравствуйте! Есть БД рестораны: таблица_1: restaurants(rest_id(pk), rest_title, ...); таблица_2(статический список кухонь из которого в админке будут добавлять нужные кухни для определенного ресторана): kitchens(kitch_id(PK), kitch_title); Подскажите пожалуйста, как правильно связать рестораны и кухни, чтобы быстро можно было выбрать все рестораны с кухней, например, "японской". Нужно делать еще 1 дополнительную табличку? kitchens(kitch_id(PK), rest_id(FK), kitch_title) если ресторан 'один' а мало ли... ...перекрещивающиеся филиалы-кухни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:11 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
1001asmasЗдравствуйте! Есть БД рестораны: таблица_1: restaurants(rest_id(pk), rest_title, ...); таблица_2(статический список кухонь из которого в админке будут добавлять нужные кухни для определенного ресторана): kitchens(kitch_id(PK), kitch_title); Подскажите пожалуйста, как правильно связать рестораны и кухни, чтобы быстро можно было выбрать все рестораны с кухней, например, "японской". Нужно делать еще 1 дополнительную табличку? kitchens(kitch_id(PK), rest_id(FK), kitch_title) если ресторан 'один' а мало ли... ...перекрещивающиеся филиалы-кухни У меня так было , но мне сказали сделать статик список кухонь .. ;/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:14 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
xenixПрямо просится "многие-ко-многим" тоесть 3 табличку : (id_rest(FK), kitch_id(FK)) правильно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:17 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
asmas1001пропущено... kitchens(kitch_id(PK), rest_id(FK), kitch_title) если ресторан 'один' а мало ли... ...перекрещивающиеся филиалы-кухни У меня так было , но мне сказали сделать статик список кухонь .. ;/ в смысле - Справочник ? ну сделай еще статик список - ресторанов...) морально к м:м ты ж готов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:21 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
автортоесть 3 табличку : (id_rest(FK), kitch_id(FK)) правильно? абсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:22 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
1001asmasпропущено... У меня так было , но мне сказали сделать статик список кухонь .. ;/ в смысле - Справочник ? ну сделай еще статик список - ресторанов...) морально к м:м ты ж готов Ну это список из которого выбираются кухни. xenixавтортоесть 3 табличку : (id_rest(FK), kitch_id(FK)) правильно? абсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс Все вроде разобрался, спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:29 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
asmasНужно делать еще 1 дополнительную табличку? Да, причём это будет табличка "блюда". То есть в ресторанах подают некоторые блюда, а каждое блюдо принадлежит к определённой кухне. Если в ресторане подают суши и пиццу, то, соответственно, получается, что у ресторана японская и итальянская кухни. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:32 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
xenixабсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс или id_rest_kitch,id_rest,id_kitch где id_rest_kitch первичный в связной таблице ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:35 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
Достаточно 2-х таблиц: универсальный справочник (id,parent,name), Разблюдовка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:36 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
vmagxenixабсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс или id_rest_kitch,id_rest,id_kitch где id_rest_kitch первичный в связной таблице Совершенно бессмысленный индекс, что с точки зрения производительности, что с точки зрения ограничений целостности. Xenix посоветовал верно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:44 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
prog123Достаточно 2-х таблиц: универсальный справочник (id,parent,name), Разблюдовка ТС хочет 3-ри он зрит вперед и э это не может быть неправильно м*м делай построишь правильный интерфейс .. все профитно...))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:48 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинСовершенно бессмысленный индекс, что с точки зрения производительности Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 18:50 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
vmagКот МатроскинСовершенно бессмысленный индекс, что с точки зрения производительности Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать...+ + и как-раз с что с точки зрения производительности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 19:04 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
vmagКот МатроскинСовершенно бессмысленный индекс, что с точки зрения производительности Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать... В каком интерфейсе? какой конкретно разумный запрос к этой структуре будет работать быстрее от такого индекса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 20:40 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
asmasЗдравствуйте! Есть БД рестораны: таблица_1: restaurants(rest_id(pk), rest_title, ...); таблица_2(статический список кухонь из которого в админке будут добавлять нужные кухни для определенного ресторана): kitchens(kitch_id(PK), kitch_title); Подскажите пожалуйста, как правильно связать рестораны и кухни, чтобы быстро можно было выбрать все рестораны с кухней, например, "японской". Нужно делать еще 1 дополнительную табличку? Не нужно. Связывают связями, а не "табличками")) И не используйте иностранные языки - никакого смысла в этом нет. И не используйте "ключи" - в них тоже нет никакого смысла. Ресторан {Название, ...} Кухня {Название} Ресторан <- Использует/Используется в -> Кухня И используйте СУБД, а не СХОД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 20:43 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинvmagпропущено... Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать... В каком интерфейсе? какой конкретно разумный запрос к этой структуре будет работать быстрее от такого индекса? vmag - извени тбл-ка с суррогатом мне тупо на уровне интуиции ндравится она ужо как-бэ организованная куча чо плохо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 21:04 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинВ каком интерфейсе? какой конкретно разумный запрос к этой структуре будет работать быстрее от такого индекса? 1. Я корректирую текущую запись связующей таблицы (выделил её в списке)... в моем случае я держу в руках однозначный первичный ключ этой записи и могу эту запись: удалить или изменить на лету... тоже самое можно сделать и без первичного ключа, но сложнее, ибо например в списке у выделенной записи будет в руках только один ключ из двух вторичных, а второй нужно брать типа из Column(1)... 2. В перспективе, если эта таблица станет главной таблицей например по отношению к другой связующей таблице (типа блюда этой кухни в этом ресторане или повар этого блюда в этом ресторане или ингредиенты этого блюда в этом ресторане), то у меня уже есть простой первичный ключ для организации такой связи и схему данных (а соответственно и интерфейс) лопатить уже не нужно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 22:38 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
vmag, Уточняю сам себя по этому топику: 1. Связующие таблицы - это зло (если кроме связки больше никакой информации нет). Вычислить у какого ресторана какие кухни используются можно запросом из реальной структуры бд, например как видно на рисунке (через блюда). 2. Раз уж без связующей таблицы никак, то первичный ключ ей не помешает по двум причинам: - быстрый и однозначный доступ к текущей записи для корректировки. - эта таблица может быть главной таблицей для другой таблицы без всяких последствий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 23:01 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
авторВычислить у какого ресторана какие кухни используются можно запросом из реальной структуры бд, например как видно на рисунке (через блюда). Зато есть подстраховка от того факта, что блюдо может жить в двух кухнях (например, знаменитая шаурма :-)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 23:07 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
xenixЗато есть подстраховка от того факта, что блюдо может жить в двух кухнях (например, знаменитая шаурма :-)) Какая подстраховка ??? Я вставляю в запрос все три таблицы и беру из них два поля restoran и kuhna, делаю группировку с сортировкой по restoran и получаю все кухни в ресторанах и мне по барабану сколько там раз была шаурма... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 23:17 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
xenixблюдо может жить в двух кухнях (например, знаменитая шаурма :-)) + очень может жить, причем в разных ресторанах с разными ингредиентами и разной ценой, хотя и просто тупо знаменитая шаурма.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2014, 23:20 |
|
||
|
бд ресторанов
|
|||
|---|---|---|---|
|
#18+
vmag, Я Вас, кажется, неправильно понял - я думал что Вы описываете структуру индекса, а Вы, похоже, говорили про структуру самой таблицы. Включать суррогат в связующую таблицу (а не в индекс) - такая точка зрения имеет право на существование, хотя лично я бы так делать не стал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2014, 09:08 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=38731014&tid=1540811]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 13ms |
| total: | 163ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...