[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как будет лучше связывать таблицы в одну?
Adva
Для того чтобы было меньше букв не буду всю базу щас выкладывать, а приведу пример ее маленькой части.

Цитата
таблица ТИП КАФЕ
type_id - ид.
type_name - название

1 | Кафе
2 | Ресторан
3 | Фастфуд
и т.д.


Цитата
таблица ВИДЫ КУХНИ
kitchen_id - ид.
kitchen_name - название
kitchen_desc - описание

1 | Русская
2 | Европейская
3 | Китайская
4 | Японская
и т.д.


Цитата
таблица БИЗНЕС-ЛАНЧ
lunch_id - ид.
lunch_price - ценовая категория

1 | меньше 100 рублей
2 | 100 - 300 рублей
3 | больше 300 рублей


Цитата
таблица ЗАВЕДЕНИЕ
cafe_id - ид.
cafe_name - название кафе
cafe_type - тип кафе, может быть несколько
cafe_kitchen - виды кухни, может быть несколько
cafe_lunch - цена на бизнес ланч, может быть только 1

1 | Mc'Donalds | 1,3    | 2,4,5,6,3 | 2
2 | Pizza Mia    | 2,4,7 | 3,4,20,30 | 1
и т.д.


правильно я организовал последнюю таблицу? в итоге у этой таблицы будет около 20-30 полей, и у многих будут вспомогательные таблицы (как ВИДЫ КУХНИ, к примеру). Этож наверно будет очень медленно все работать?
И как организовать поиск по базе? например мне надо вывести все Фастфуды (id=3) где есть Европейская кухня (id=2). Если искать цифру 2 и 3 в базе "ЗАВЕДЕНИЯ", то так же будут засчитываться и числа 20,30, как это обойти?

еще в голову пришла мысль.

для таблиц ЗАВЕДЕНИЯ и ТИП КАФЕ сделать дополнительную таблицу, где будет ид заведения и ид кафе.
для таблиц ЗАВЕДЕНИЯ и ВИДЫ КУХНИ сделать подобную таблицу
и так далее... и потом как нибудь (пока не знаю как) их связывать. Но что знаю точно что таблиц в итоге получится море



Спустя 10 минут, 19 секунд (4.08.2009 - 11:56) Sylex написал(а):
выборка и поиск при такой организации таблицы (ЗАВЕДЕНИЕ), конечно, не будет удобна.

связь один ко многим

правильно ты подумал, тебе нужны 2 кросс-таблицы
Цитата
Таблица заведение_2_кафе
ид_заведения
ид_кафе


Цитата
Таблица заведение_2_вид_кухни
ид_заведения
ид_вида_кухни



Спустя 2 минуты, 32 секунды (4.08.2009 - 11:58) Sylex написал(а):
Цитата (Adva @ 4.08.2009 - 14:45)
Но что знаю точно что таблиц в итоге получится море


Почему море? И в чем проблема?

Цитата (Adva @ 4.08.2009 - 14:45)
и потом как нибудь (пока не знаю как) их связывать


связывать через JOIN smile.gif

Спустя 1 минута, 6 секунд (4.08.2009 - 11:59) Sylex написал(а):
Adva
и вообще может не всегда стоить вводить таблицу, например, можно просто описать массив

Спустя 19 минут, 36 секунд (4.08.2009 - 12:19) Adva написал(а):
Цитата
выборка и поиск при такой организации таблицы (ЗАВЕДЕНИЕ), конечно, не будет удобна.

связь один ко многим

правильно ты подумал, тебе нужны 2 кросс-таблицы

спасибо за оперативность))) так и сделаю наверно

Цитата
Почему море? И в чем проблема?

ну у главной таблицы будет примерно 25 полей, т.е. еще около 20 таблиц. + 10 вспомогательных (кросс-таблицы).
:-) и это только для того чтобы нормально функционировал вывод информации о кафешках smile.gif

т.е. вот что то вроде такого должно получиться

Цитата
и вообще может не всегда стоить вводить таблицу, например, можно просто описать массив

пример можно? rolleyes.gif

Спустя 1 час, 20 минут, 16 секунд (4.08.2009 - 13:39) Sylex написал(а):
Цитата (Adva @ 4.08.2009 - 15:19)
пример можно? rolleyes.gif


PHP
$type_cafe = array(
=> 'Кафе',
=> 'Ресторан',
=> 'Фастфуд'
);
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.