Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связи в базе / 12 сообщений из 12, страница 1 из 1
15.02.2011, 20:00
    #37118099
relief
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
Есть 2 сущности:

страна и город. На них есть 2 таблицы: Countries и Cities.
И есть связующая таблица CountryID-CityID, т.е. имеем все города для данной страны.
Вопрос: хорошо или плохо если в таблицу Cities положить столбец CountryID? чтобы не цеплять джойном лишнию таблицу.
...
Рейтинг: 0 / 0
15.02.2011, 20:23
    #37118152
Rin@t
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
relief,

связь между Countries и Cities - 1 : N.
...
Рейтинг: 0 / 0
15.02.2011, 20:44
    #37118192
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
reliefЕсть 2 сущности:

страна и город. На них есть 2 таблицы: Countries и Cities.
И есть связующая таблица CountryID-CityID, т.е. имеем все города для данной страны.
Вопрос: хорошо или плохо если в таблицу Cities положить столбец CountryID? чтобы не цеплять джойном лишнию таблицу.Конечно, хорошо.

Если не нужно учитывать варианты, когда город входит в несколько стран.
...
Рейтинг: 0 / 0
15.02.2011, 20:45
    #37118194
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
reliefЕсть 2 сущности:

страна и город. На них есть 2 таблицы: Countries и Cities.
И есть связующая таблица CountryID-CityID, т.е. имеем все города для данной страны.
Вопрос: хорошо или плохо если в таблицу Cities положить столбец CountryID? чтобы не цеплять джойном лишнию таблицу.
И то, и другое - очень плохо:) Нужно использовать связи между сущностями, а не "связующие таблицы" или "ключи".
...
Рейтинг: 0 / 0
15.02.2011, 20:58
    #37118210
relief
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
alexeyvgreliefЕсть 2 сущности:

страна и город. На них есть 2 таблицы: Countries и Cities.
И есть связующая таблица CountryID-CityID, т.е. имеем все города для данной страны.
Вопрос: хорошо или плохо если в таблицу Cities положить столбец CountryID? чтобы не цеплять джойном лишнию таблицу.Конечно, хорошо.

Если не нужно учитывать варианты, когда город входит в несколько стран.

а почему хорошо? ведь, вроде как, с точки зрения нормализации это лишний столбец, то бишь избыточность; ведь у нас есть связующая табличка.

город в нескольких странах не может быть
...
Рейтинг: 0 / 0
15.02.2011, 21:16
    #37118231
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
relief а почему хорошо? ведь, вроде как, с точки зрения нормализации это лишний столбец, то бишь избыточность; ведь у нас есть связующая табличка.
Вам объясняют, что эта табличка не нужна. Достаточно внешнего ключа.
...
Рейтинг: 0 / 0
15.02.2011, 22:26
    #37118341
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
reliefа почему хорошо? ведь, вроде как, с точки зрения нормализации это лишний столбец, то бишь избыточность; ведь у нас есть связующая табличка.Ээээ. Любое поле, кроме ID получается "с точки зрения нормализации это лишний столбец, то бишь избыточность"???

Я наверное никудышный теоретик, но считал бы это ошибкой в модели данных и постарался бы исправить.
reliefгород в нескольких странах не может бытьНикосия
...
Рейтинг: 0 / 0
15.02.2011, 22:31
    #37118349
ViPRos
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
[quot alexeyvg Любое поле, кроме ID получается "с точки зрения нормализации это лишний столбец, то бишь избыточность"???
[/quot]

ИДs + собственные свойства = (Лукап + НеЛукап) :)
Лукапы могут быть унаследованы
...
Рейтинг: 0 / 0
16.02.2011, 01:43
    #37118521
YuriyV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
reliefгород в нескольких странах не может быть

Брест, Берлин... и т.д
Больше того, в одной стране возможны одинаковые названия населенных пунктов, отличающиеся только регионом(областью)
...
Рейтинг: 0 / 0
16.02.2011, 21:14
    #37121132
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
Теперь попробуем все это обобщить:) В первую очередь, идею alexeyvg.

Итак, ничего, кроме идентификаторов.
"Таблицы":
Человек
Фамилия
Имя
...
В них только идентификаторы, а именно:
Человек:
1
2
3
4
5
...
Фамилия:
Петров
Иванов
Сидоров
... (такие вот содержательные идентификаторы)
Имя:
Сергей
Николай
Петр
...

И, вероятно, не обойтись без связей.
Человек-Имеет-Фамилия:
1-Петров
2-Петров
3-Сидоров
...
Человек-Имеет-Имя:
1-Николай
2-Сергей
3-Сергей
...

Вероятно, можно считать, что мы решили задачу, поставленную alexeyvg?:)
...
Рейтинг: 0 / 0
16.02.2011, 23:23
    #37121269
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
БредятинаВероятно, можно считать, что мы решили задачу, поставленную alexeyvg?:)Нет, я такого бреда не предлагал.

Это relief настаивает на таком решении.
...
Рейтинг: 0 / 0
17.02.2011, 15:47
    #37122720
Бредятина
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связи в базе
alexeyvgБредятинаВероятно, можно считать, что мы решили задачу, поставленную alexeyvg?:)Нет, я такого бреда не предлагал.
Это relief настаивает на таком решении.
relief не настаивал на том, что:
Любое поле, кроме ID получается "с точки зрения нормализации это лишний столбец, то бишь избыточность".
И никакого "бреда" в приведенном примере хранения "только ID" нет, конечно. Только интуитивно можно предположить снижение производительности:)
...
Рейтинг: 0 / 0
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Связи в базе / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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