Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Данные из двух таблиц
Форумы портала PHP.SU » PHP » SQL и Архитектура БД » Данные из двух таблиц

Страниц (1): [1]
 

1. htcsc - 04 Мая, 2015 - 03:11:24 - перейти к сообщению
Всем привет. подскажите пожалуйста, как мне лучше реализовать следующее:

имеется две таблицы, назовем их country и city
в первой есть поля id и country во второй id и city
соответственно в первой таблице хранятся страны, а во второй города.

как мне сделать вывод городов, в зависимости от страны?
2. Мелкий - 04 Мая, 2015 - 10:37:46 - перейти к сообщению
Знатоки, один город может одновременно принадлежать двум разным государствам?

Если нет, не может - в таблицу городов добавляете id страны, в которой этот город расположен.
3. Sail - 04 Мая, 2015 - 13:15:48 - перейти к сообщению
А если да, может - создаёте ещё одну табличку (id_country, id_city)
А чё я? Я ничё!
4. Sankaboy - 04 Мая, 2015 - 13:20:05 - перейти к сообщению
А если да, то можно через запятую записать id 2-х стран. Или продублировать город с разными идами стран.
А если создать еще одну табличку, как Вы предложили, то это будет маленько нагрузисто, но работоспособно при условии, что такой набор таблиц подойдет под ваши требования.
5. Мелкий - 04 Мая, 2015 - 13:45:59 - перейти к сообщению
Sankaboy пишет:
А если да, то можно через запятую записать id 2-х стран

Ни в коем случае.

Sankaboy пишет:
если создать еще одну табличку, как Вы предложили, то это будет маленько нагрузисто

Напротив. Поиск по индексу не стоит практически ничего, против вашего постоянного full scan.
6. LIME - 04 Мая, 2015 - 18:11:28 - перейти к сообщению
Мелкий пишет:
против вашего постоянного full scan.
почему фулскан?
Обычная денормализация
Да...будет побыстрее чем join
Но и проблем поболее
Например апдейт по id уже не получится, придется апдейтить все по названию
А что если есть одноименные города? А они есть Улыбка
Можно по комбинации названия и страны, но они ведь и внутри страны могут быть одноименные
Придется добавлять еще один идентификатор для города
А оно вообще нам надо?
Оптимизировать надо узкие места
7. Мелкий - 04 Мая, 2015 - 18:49:16 - перейти к сообщению
LIME пишет:
почему фулскан?

Потому что иначе бред записи через запятые в одно поле не обрабатывается.
Смотри, что я цитирую.
8. LIME - 04 Мая, 2015 - 18:51:51 - перейти к сообщению
Я смотрюУлыбка
у тебя непонятно к какому варианту комент про фулскан
Sankaboy пишет:
Или продублировать город с разными идами стран.
денормализация
А запятые конечно бред
Как по ним выборку делать нормально

 

Powered by ExBB FM 1.0 RC1