powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Primary key не integer
25 сообщений из 61, страница 1 из 3
Primary key не integer
    #36374090
Who am I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотелось бы услышать аргументы о том, насколько плохо и плохо ли вообще делать primary key не числовым.

Допустим, есть сущность. В моем случае это филиал банка.

Я знаю наверняка что у филиала есть четырехсимвольный id. Например 0000 или 0001.

Что мне мешает сделать char(4) и сделать его primary key?

Какие у этого решения минусы?

Меня всегда напрягало создание дополнительного "ненужного" id, когда есть уникальное поле.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374106
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а меня не напрягает
но я не против вашей мысли
лишь бы уникальное не перестало быть таковым однажды
С уважением, Naf
...
Рейтинг: 0 / 0
Primary key не integer
    #36374113
Who am I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374131
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Who am IВопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.возможно да, например для таблиц служащих отношением многие-ко-многим
но и такие таблицы могут "превратится в сущности", но редко
...
Рейтинг: 0 / 0
Primary key не integer
    #36374145
Who am I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafа меня не напрягает
но я не против вашей мысли
лишь бы уникальное не перестало быть таковым однажды
С уважением, Naf

В таком случае в качестве ID можно взять то, что на текущий момент в таблице объявлено unique, а id вообще выкинуть.

Аргументы против?
...
Рейтинг: 0 / 0
Primary key не integer
    #36374273
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Who am IХотелось бы услышать аргументы о том, насколько плохо и плохо ли вообще делать primary key не числовым.

Допустим, есть сущность. В моем случае это филиал банка.

Я знаю наверняка что у филиала есть четырехсимвольный id. Например 0000 или 0001.

Что мне мешает сделать char(4) и сделать его primary key?

Какие у этого решения минусы?

Меня всегда напрягало создание дополнительного "ненужного" id, когда есть уникальное поле.
CHAR(4) - ничего не мешает, VARCHAR(255) - мешает то что это огромное поле придется везде за собой таскать.

В таблице многие ко многим PKем и является (id_entity1, id_entity2), ИМХО.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374286
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Who am INafа меня не напрягает
но я не против вашей мысли
лишь бы уникальное не перестало быть таковым однажды
С уважением, Naf

В таком случае в качестве ID можно взять то, что на текущий момент в таблице объявлено unique, а id вообще выкинуть.

Аргументы против?как и говорил, может стать однажды не уникальным или измениться, от ситуации зависит
это известный спор Естественные и суррогатные ключи
...
Рейтинг: 0 / 0
Primary key не integer
    #36374306
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно понимать, что зачастую БД не является первичным регистром, а лишь отражает состояние некой внешней системы, в которой могут быть исключения из правил. А PK не терпит никаких исключений.

В объектных БД каждая запись в БД имеет уникальный ID объекта независимо от наличия PK на таблице. Это современная тенденция.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374434
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Who am IВопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.Бессмысленно платить зарплату таким горе-архитекторам
...
Рейтинг: 0 / 0
Primary key не integer
    #36374494
Who am I
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVWho am IВопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.Бессмысленно платить зарплату таким горе-архитекторам

Отличный аргумент, только бесполезный.

Максимум что вы здесь сделали, это попытку поднять свое эго за счет принижений качеств другого человека. =)

Может быть все же вернемся к конструктивному разговору?
...
Рейтинг: 0 / 0
Primary key не integer
    #36374540
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если бы PK был обязательным, в запросе CREATE TABLE вам бы пришлось всегда указывать PK. Если PK не нужен, не делай его.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374568
ОКТОГЕН
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
использовую UUID.
Вполне себе хороший идентификатор.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374857
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Who am I wrote:
> Хотелось бы услышать аргументы о том, насколько плохо и плохо ли вообще
> делать primary key не числовым.

Ни плохо, и ни хорошо. Равнозначно с числовыми идентификаторами.
На самом деле пофигу, какой идентификатор, главное, чтобы он
был уникальными. (специфики конкретных СУБД тут мы не рассматриваем).

> Какие у этого решения минусы?

по большому счёту, никаких.

> Меня всегда напрягало создание дополнительного "ненужного" id, когда
> есть уникальное поле.

В общем, правильно напрягало, если конечно это ДЕЙСТВИТЕЛЬНО уникальное
поле.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Primary key не integer
    #36374893
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> насколько плохо и плохо ли вообще делать primary key не числовым.

Теоретически тип данных не играет роли. Практически - компактнее и проще оперировать числами.

> Я знаю наверняка что у филиала есть четырехсимвольный id.

Типичная ошибка. Вы можете что-то знать только о данных, источник которых контролируете. Если где-то в какой-то другой базе данных некие данные имеют какой-то идентификатор, то в своей базе данных вы можете использовать этот идентификатор только и исключительно в виде <источник данных>...<идентификатор экземпляра>...<дата регистрации>.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374925
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Who am IАргументы против? унифицировав имя pk и введя его в ранг обязательных в любых таблицах, вы облегчаете вашим последователям понимание вашего кода.
...
Рейтинг: 0 / 0
Primary key не integer
    #36374926
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
да, и при написании запросов не надо думать "а с чем связать?"
...
Рейтинг: 0 / 0
Primary key не integer
    #36374927
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Who am IЯ знаю наверняка что у филиала есть четырехсимвольный id. Например 0000 или 0001. сегодня это так, но где гарантия что так же будет и завтра?
...
Рейтинг: 0 / 0
Primary key не integer
    #36374937
Vika Vinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ОКТОГЕНиспользовую UUID.
Вполне себе хороший идентификатор.

Вот чтобы я не делала точно - так это назначала GUID (UUID) ключом в VLDB. На одной колоночке в 6,000,000++ строк только ключ занял 650 GB.... а мог быть всего 150 GB.... Дорого...
...
Рейтинг: 0 / 0
Primary key не integer
    #36374945
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Vika VinnerВот чтобы я не делала точно - так это назначала GUID (UUID) ключом в VLDB. На одной колоночке в 6,000,000++ строк только ключ занял 650 GB.... а мог быть всего 150 GB.... Дорого... можно узнать формулу, по которой считали?
...
Рейтинг: 0 / 0
Primary key не integer
    #36374947
Vika Vinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNoseможно узнать формулу, по которой считали?

Что - деньги или поле-размер? :)
...
Рейтинг: 0 / 0
Primary key не integer
    #36374953
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Vika VinnereNoseможно узнать формулу, по которой считали?

Что - деньги или поле-размер? :) вот это:

GUID (UUID) ключ на одной колоночке в 6,000,000++ строк только занял 650 GB
...
Рейтинг: 0 / 0
Primary key не integer
    #36374960
Vika Vinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллега, снимите свой вопрос... Не к лицу..
...
Рейтинг: 0 / 0
Primary key не integer
    #36374968
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Vika Vinner,

"++" - это еще два раза по "000"?
...
Рейтинг: 0 / 0
Primary key не integer
    #36374971
Vika Vinner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет это ещё десять баз данных куда это всё реплицировалось ...
...
Рейтинг: 0 / 0
Primary key не integer
    #36374975
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
697,932,185,600/16 = 43,620,761,600
...
Рейтинг: 0 / 0
25 сообщений из 61, страница 1 из 3
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Primary key не integer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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