powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / бд ресторанов
28 сообщений из 28, показаны все 2 страниц
бд ресторанов
    #38730827
asmas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Есть БД рестораны:

таблица_1:
restaurants(rest_id(pk), rest_title, ...);

таблица_2(статический список кухонь из которого в админке будут добавлять нужные кухни для определенного ресторана):
kitchens(kitch_id(PK), kitch_title);

Подскажите пожалуйста, как правильно связать рестораны и кухни, чтобы быстро можно было выбрать все рестораны с кухней, например, "японской".
Нужно делать еще 1 дополнительную табличку?
...
Рейтинг: 0 / 0
бд ресторанов
    #38730830
asmas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть мне нужно хранить гдето для каждого ресторана список id кухонь, которые в нем есть.
...
Рейтинг: 0 / 0
бд ресторанов
    #38730831
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прямо просится "многие-ко-многим"
...
Рейтинг: 0 / 0
бд ресторанов
    #38730834
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)

если ресторан 'один'

а мало ли...
...перекрещивающиеся филиалы-кухни
...
Рейтинг: 0 / 0
бд ресторанов
    #38730837
asmas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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)

если ресторан 'один'

а мало ли...
...перекрещивающиеся филиалы-кухни

У меня так было , но мне сказали сделать статик список кухонь .. ;/
...
Рейтинг: 0 / 0
бд ресторанов
    #38730838
asmas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xenixПрямо просится "многие-ко-многим"
тоесть 3 табличку : (id_rest(FK), kitch_id(FK)) правильно?
...
Рейтинг: 0 / 0
бд ресторанов
    #38730843
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
asmas1001пропущено...


kitchens(kitch_id(PK), rest_id(FK), kitch_title)

если ресторан 'один'

а мало ли...
...перекрещивающиеся филиалы-кухни

У меня так было , но мне сказали сделать статик список кухонь .. ;/
в смысле - Справочник ?

ну сделай еще статик список - ресторанов...)

морально к
м:м ты ж готов
...
Рейтинг: 0 / 0
бд ресторанов
    #38730845
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автортоесть 3 табличку : (id_rest(FK), kitch_id(FK)) правильно?
абсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс
...
Рейтинг: 0 / 0
бд ресторанов
    #38730849
asmas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1001asmasпропущено...


У меня так было , но мне сказали сделать статик список кухонь .. ;/
в смысле - Справочник ?

ну сделай еще статик список - ресторанов...)

морально к
м:м ты ж готов
Ну это список из которого выбираются кухни.

xenixавтортоесть 3 табличку : (id_rest(FK), kitch_id(FK)) правильно?
абсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс
Все вроде разобрался, спасибо!
...
Рейтинг: 0 / 0
бд ресторанов
    #38730851
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asmasНужно делать еще 1 дополнительную табличку?
Да, причём это будет табличка "блюда". То есть в ресторанах подают некоторые блюда, а
каждое блюдо принадлежит к определённой кухне. Если в ресторане подают суши и пиццу, то,
соответственно, получается, что у ресторана японская и итальянская кухни.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
бд ресторанов
    #38730854
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixабсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс

или

id_rest_kitch,id_rest,id_kitch

где id_rest_kitch первичный в связной таблице
...
Рейтинг: 0 / 0
бд ресторанов
    #38730860
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Достаточно 2-х таблиц: универсальный справочник (id,parent,name), Разблюдовка
...
Рейтинг: 0 / 0
бд ресторанов
    #38730865
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagxenixабсолютно. на связку (id_rest,kitch_id) повесить уникальный индекс

или

id_rest_kitch,id_rest,id_kitch

где id_rest_kitch первичный в связной таблице

Совершенно бессмысленный индекс, что с точки зрения производительности, что с точки зрения ограничений целостности.
Xenix посоветовал верно.
...
Рейтинг: 0 / 0
бд ресторанов
    #38730869
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
prog123Достаточно 2-х таблиц: универсальный справочник (id,parent,name), Разблюдовка
ТС хочет 3-ри
он зрит вперед

и э это не может быть неправильно

м*м делай

построишь правильный интерфейс
..

все профитно...)))
...
Рейтинг: 0 / 0
бд ресторанов
    #38730872
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинСовершенно бессмысленный индекс, что с точки зрения производительности

Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать...
...
Рейтинг: 0 / 0
бд ресторанов
    #38730878
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagКот МатроскинСовершенно бессмысленный индекс, что с точки зрения производительности

Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать...+ +

и как-раз с что с точки зрения производительности
...
Рейтинг: 0 / 0
бд ресторанов
    #38730945
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmagКот МатроскинСовершенно бессмысленный индекс, что с точки зрения производительности

Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать...
В каком интерфейсе? какой конкретно разумный запрос к этой структуре будет работать быстрее от такого индекса?
...
Рейтинг: 0 / 0
бд ресторанов
    #38730948
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asmasЗдравствуйте!
Есть БД рестораны:

таблица_1:
restaurants(rest_id(pk), rest_title, ...);

таблица_2(статический список кухонь из которого в админке будут добавлять нужные кухни для определенного ресторана):
kitchens(kitch_id(PK), kitch_title);

Подскажите пожалуйста, как правильно связать рестораны и кухни, чтобы быстро можно было выбрать все рестораны с кухней, например, "японской".
Нужно делать еще 1 дополнительную табличку?
Не нужно. Связывают связями, а не "табличками"))
И не используйте иностранные языки - никакого смысла в этом нет.
И не используйте "ключи" - в них тоже нет никакого смысла.

Ресторан {Название, ...}
Кухня {Название}
Ресторан <- Использует/Используется в -> Кухня

И используйте СУБД, а не СХОД.
...
Рейтинг: 0 / 0
бд ресторанов
    #38730956
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскинvmagпропущено...


Зато очень полезный в интерфейсе, особенно если такую таблицу нужно часто корректировать...
В каком интерфейсе? какой конкретно разумный запрос к этой структуре будет работать быстрее от такого индекса?
vmag - извени




тбл-ка с суррогатом

мне тупо на уровне интуиции
ндравится

она ужо как-бэ
организованная куча

чо плохо
...
Рейтинг: 0 / 0
бд ресторанов
    #38730994
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинВ каком интерфейсе? какой конкретно разумный запрос к этой структуре будет работать быстрее от такого индекса?

1. Я корректирую текущую запись связующей таблицы (выделил её в списке)... в моем случае я держу в руках однозначный первичный ключ этой записи и могу эту запись: удалить или изменить на лету... тоже самое можно сделать и без первичного ключа, но сложнее, ибо например в списке у выделенной записи будет в руках только один ключ из двух вторичных, а второй нужно брать типа из Column(1)...
2. В перспективе, если эта таблица станет главной таблицей например по отношению к другой связующей таблице (типа блюда этой кухни в этом ресторане или повар этого блюда в этом ресторане или ингредиенты этого блюда в этом ресторане), то у меня уже есть простой первичный ключ для организации такой связи и схему данных (а соответственно и интерфейс) лопатить уже не нужно...
...
Рейтинг: 0 / 0
бд ресторанов
    #38731006
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,
Уточняю сам себя по этому топику:
1. Связующие таблицы - это зло (если кроме связки больше никакой информации нет). Вычислить у какого ресторана какие кухни используются можно запросом из реальной структуры бд, например как видно на рисунке (через блюда).
2. Раз уж без связующей таблицы никак, то первичный ключ ей не помешает по двум причинам:
- быстрый и однозначный доступ к текущей записи для корректировки.
- эта таблица может быть главной таблицей для другой таблицы без всяких последствий.
...
Рейтинг: 0 / 0
бд ресторанов
    #38731008
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВычислить у какого ресторана какие кухни используются можно запросом из реальной структуры бд, например как видно на рисунке (через блюда).
Зато есть подстраховка от того факта, что блюдо может жить в двух кухнях (например, знаменитая шаурма :-))
...
Рейтинг: 0 / 0
бд ресторанов
    #38731012
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixЗато есть подстраховка от того факта, что блюдо может жить в двух кухнях (например, знаменитая шаурма :-))

Какая подстраховка ???
Я вставляю в запрос все три таблицы и беру из них два поля restoran и kuhna, делаю группировку с сортировкой по restoran и получаю все кухни в ресторанах и мне по барабану сколько там раз была шаурма...
...
Рейтинг: 0 / 0
бд ресторанов
    #38731014
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixблюдо может жить в двух кухнях (например, знаменитая шаурма :-))

+ очень может жить, причем в разных ресторанах с разными ингредиентами и разной ценой, хотя и просто тупо знаменитая шаурма....
...
Рейтинг: 0 / 0
бд ресторанов
    #38731162
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vmag,

Я Вас, кажется, неправильно понял - я думал что Вы описываете структуру индекса, а Вы, похоже, говорили про структуру самой таблицы.
Включать суррогат в связующую таблицу (а не в индекс) - такая точка зрения имеет право на существование, хотя лично я бы так делать не стал.
...
Рейтинг: 0 / 0
бд ресторанов
    #38731386
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vmagxenixЗато есть подстраховка от того факта, что блюдо может жить в двух кухнях (например, знаменитая шаурма :-))

Какая подстраховка ???
Я вставляю в запрос все три таблицы и беру из них два поля restoran и kuhna, делаю группировку с сортировкой по restoran и получаю все кухни в ресторанах и мне по барабану сколько там раз была шаурма...ну...))

еще заказ типа клиент'ы
пристроить
...
Рейтинг: 0 / 0
бд ресторанов
    #38731389
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскина Вы, похоже, говорили про структуру самой таблицы.
Включать суррогат в связующую таблицу (а не в индекс) - такая точка зрения имеет право на существование

ну слава Богу.... не нужно бояться суррогатных первичных ключей, нужно бояться суррогатных связующих таблиц !!!
...
Рейтинг: 0 / 0
бд ресторанов
    #38735561
AG#
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то подобное недавно дискутировалось.Вводим 3-ю табличку:

http://www.sql.ru/forum/1113129/obiee-11-1-1-7-140527-otsutstvuut-tablicy-faktov?hl=
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / бд ресторанов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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