powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что сделать первичным ключом: код страны или название страны или создать сурогат?
14 сообщений из 14, страница 1 из 1
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37053747
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стандартные коды (стандартной длины) как бы ближе к ключу чем
наименования (переменной величины). Например тут:
http://www.mosclassific.ru/mClass/oksm_view.php

Суррогатный ключ как бы ближе к строгому дезайну
от суровых ДБЁв.

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

Чем привлекает использования названия -- ето то что
в таблице адресов можно сразу ставить име страны и имя региона
(провинции, штата). Небольшое увеличение размера колонки
(3 на код против варчар-100, тоже для провинции) -- против двух лишних
запросов (или жоинтов) на имя страны и имя провинции если они лежат в других таблицах.

Спасибо заранее за на водку.
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37053878
Полковник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

Сурогатный ключ - это термин хранилищ данных, служит для перекодировки первичных ключей и привязки к справочникам данных из таблиц фактов. В случае большого объема данных и жестких требобований к производительности перекрестной выборки большого объема данных из нескольких таблиц должен быть из разряда int -> см. индексирование.

Усли у вас не хранилище данных, то ваш случай - первичный ключ. Можно оставить как есть.
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37053914
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковникjavajdbc,

Сурогатный ключ - это термин хранилищ данных, служит для перекодировки первичных ключей и привязки к справочникам данных из таблиц фактов. В случае большого объема данных и жестких требобований к производительности перекрестной выборки большого объема данных из нескольких таблиц должен быть из разряда int -> см. индексирование.

Усли у вас не хранилище данных, то ваш случай - первичный ключ. Можно оставить как есть.
Все же терамин "Сурогатный ключ" используется и в базах данных. И противопоставляется там не первичным ключам, а естественным ключам. И означает, что не является никаким свойством объекта реальногого мира, т.е. его значения ниче не описывают из предметной области.
При этом и естественные и особенно суррогатные ключи могут быть первичными.
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37054004
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc,

Вот, была недавно темка:
Первичные ключи и ISO коды
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37054090
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbcСуррогатный ключ как бы ближе к строгому дезайну
от суровых ДБЁв.

И с третьей стороны, названия стран меняются не часто,
врядли будет проблемой для небольшой уеб апликации.Название страны точно не надо. :-)

А естественный ключ использовать вполне нормально, как из цифрового кода страны, так и из символьного
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37054170
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgА естественный ключ использовать вполне нормально, как из цифрового кода страны, так и из символьного а Джон Кеннеди таки убит в Глухомани
шоу маст го он
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37055243
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsjavajdbc,

Вот, была недавно темка:
Первичные ключи и ISO коды

о! хорошая тема!
блин...ну как не охота делать два лишних жоинта
для подбора реального имени страны и провинции...
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37055246
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Полковникjavajdbc,

Сурогатный ключ - это термин хранилищ данных, служит для перекодировки первичных ключей и привязки к справочникам данных из таблиц фактов. В случае большого объема данных и жестких требобований к производительности перекрестной выборки большого объема данных из нескольких таблиц должен быть из разряда int -> см. индексирование.

Усли у вас не хранилище данных, то ваш случай - первичный ключ. Можно оставить как есть.

Ну фик с ним, как он нзавывается...
имелось ввиду выбрать между первычным ключом для таблицы
стран (и для таблицы провинций):
-- имя страны
-- 2 или 3 буквеный код страны
-- просто автоимкрементный/идентити/сиквенс поле
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37055490
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
javajdbc Ну фик с ним, как он нзавывается...
имелось ввиду выбрать между первычным ключом для таблицы
стран (и для таблицы провинций):
-- имя страны
-- 2 или 3 буквеный код страны
-- просто автоимкрементный/идентити/сиквенс поле
Лучше всего, никогда не использовать такую модель данных (с "таблицами" и "ключами"). И у Вас не будет никаких проблем:)
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37055542
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БредятинаЛучше всего, никогда не использовать такую модель данных (с "таблицами" и "ключами"). И у Вас не будет никаких проблем:)

В целом, согласен, но какие алтернативы?
Сноуфлейк? или МОЛАП? или просто поключится к базе ООН
и вытаскивать имя страну по ключу- картинке отпечатков пальцев
каждого животного?

Кстати, будет проблема если у трупа атрежут палец....
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37055845
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
javajdbcПолковникjavajdbc,

Сурогатный ключ - это термин хранилищ данных, служит для перекодировки первичных ключей и привязки к справочникам данных из таблиц фактов. В случае большого объема данных и жестких требобований к производительности перекрестной выборки большого объема данных из нескольких таблиц должен быть из разряда int -> см. индексирование.

Усли у вас не хранилище данных, то ваш случай - первичный ключ. Можно оставить как есть.

Ну фик с ним, как он нзавывается...
имелось ввиду выбрать между первычным ключом для таблицы
стран (и для таблицы провинций):
-- имя страны
-- 2 или 3 буквеный код страны
-- просто автоимкрементный/идентити/сиквенс поле

Все может меняться кроме суррогатного ключа. Кто ж знал, что 007 будет означать не СССР, а Россия и Казахстан?
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37056890
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2Все может меняться кроме суррогатного ключа. Кто ж знал, что 007 будет означать не СССР, а Россия и Казахстан?А где это вы обнаружили, про 007 ???

В ISO 3166 и в "Общероссийский классификатор стран мира" принято следующее:
СССР - 810, SUN, SU
Россия - 643, RUS, RU
Казахстан - 398, KAZ, KZ

Разумется, эти идентификаторы, как и положено идентификаторам, не менялись и меняться не могут.

Ну а если кто-то использовал свой суррогатный ключ 007 для СССР, а потом стал считать, что это СНГ или ещё что-то, то это его проблемы. Пользуйтесь естественными ключами!

ЗЫ. Подумал, понял!
Вы назвали 007 кодом потому, что 00 на вашей АТС означает переключение на международный набор номера, а 7 означает подключение к некой группе в плане (схеме) адресации фиксированной телефонной связи, в которую сейчас входит Россия и Казахстан, а раньше входил СССР.

Вы бы ещё часть IP-адреса с вашего компа назначили естественным ключём для сущности Страна :-)
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37057387
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
alexeyvg,

Если бы вы еще подумали, то поняли бы, что я писал 7, а не 007. 7 - это международный телефонный код срагы, а не правила набора.
007 - это Джеймс Бонд


Телефонные коды стран] http://phones.ct24.ru/
...
Рейтинг: 0 / 0
Что сделать первичным ключом: код страны или название страны или создать сурогат?
    #37057814
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,

автор=кто-тоИ представлялась картина - фанаты БГ звонят со всей России по этому номеру в Питер и задают примерно
один и тот же вопрос:
"…типа, два двенадцать восемьдесят пять ноль шесть - это твой номер, номер, номер, номер, номер…".
А на том конце провода, какая-нибудь бабуля, уже сто тысячный раз отвечает "… нет, это прачечная …"
и кладёт трубку с чувством выполненного гражданского долга.
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Что сделать первичным ключом: код страны или название страны или создать сурогат?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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