|
|
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Хотелось бы услышать аргументы о том, насколько плохо и плохо ли вообще делать primary key не числовым. Допустим, есть сущность. В моем случае это филиал банка. Я знаю наверняка что у филиала есть четырехсимвольный id. Например 0000 или 0001. Что мне мешает сделать char(4) и сделать его primary key? Какие у этого решения минусы? Меня всегда напрягало создание дополнительного "ненужного" id, когда есть уникальное поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 15:29 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
а меня не напрягает но я не против вашей мысли лишь бы уникальное не перестало быть таковым однажды С уважением, Naf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 15:35 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Вопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 15:37 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am IВопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.возможно да, например для таблиц служащих отношением многие-ко-многим но и такие таблицы могут "превратится в сущности", но редко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 15:41 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Nafа меня не напрягает но я не против вашей мысли лишь бы уникальное не перестало быть таковым однажды С уважением, Naf В таком случае в качестве ID можно взять то, что на текущий момент в таблице объявлено unique, а id вообще выкинуть. Аргументы против? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 15:45 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am IХотелось бы услышать аргументы о том, насколько плохо и плохо ли вообще делать primary key не числовым. Допустим, есть сущность. В моем случае это филиал банка. Я знаю наверняка что у филиала есть четырехсимвольный id. Например 0000 или 0001. Что мне мешает сделать char(4) и сделать его primary key? Какие у этого решения минусы? Меня всегда напрягало создание дополнительного "ненужного" id, когда есть уникальное поле. CHAR(4) - ничего не мешает, VARCHAR(255) - мешает то что это огромное поле придется везде за собой таскать. В таблице многие ко многим PKем и является (id_entity1, id_entity2), ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 16:20 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am INafа меня не напрягает но я не против вашей мысли лишь бы уникальное не перестало быть таковым однажды С уважением, Naf В таком случае в качестве ID можно взять то, что на текущий момент в таблице объявлено unique, а id вообще выкинуть. Аргументы против?как и говорил, может стать однажды не уникальным или измениться, от ситуации зависит это известный спор Естественные и суррогатные ключи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 16:24 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Нужно понимать, что зачастую БД не является первичным регистром, а лишь отражает состояние некой внешней системы, в которой могут быть исключения из правил. А PK не терпит никаких исключений. В объектных БД каждая запись в БД имеет уникальный ID объекта независимо от наличия PK на таблице. Это современная тенденция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 16:29 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am IВопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.Бессмысленно платить зарплату таким горе-архитекторам ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 17:05 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
LSVWho am IВопрос с ходу: всегда ли нужен primary key? Я видел ситуации, когда наличие pk в таблице было просто бессмысленным.Бессмысленно платить зарплату таким горе-архитекторам Отличный аргумент, только бесполезный. Максимум что вы здесь сделали, это попытку поднять свое эго за счет принижений качеств другого человека. =) Может быть все же вернемся к конструктивному разговору? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 17:26 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Если бы PK был обязательным, в запросе CREATE TABLE вам бы пришлось всегда указывать PK. Если PK не нужен, не делай его. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 17:47 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
использовую UUID. Вполне себе хороший идентификатор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 17:58 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am I wrote: > Хотелось бы услышать аргументы о том, насколько плохо и плохо ли вообще > делать primary key не числовым. Ни плохо, и ни хорошо. Равнозначно с числовыми идентификаторами. На самом деле пофигу, какой идентификатор, главное, чтобы он был уникальными. (специфики конкретных СУБД тут мы не рассматриваем). > Какие у этого решения минусы? по большому счёту, никаких. > Меня всегда напрягало создание дополнительного "ненужного" id, когда > есть уникальное поле. В общем, правильно напрягало, если конечно это ДЕЙСТВИТЕЛЬНО уникальное поле. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 20:28 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
> насколько плохо и плохо ли вообще делать primary key не числовым. Теоретически тип данных не играет роли. Практически - компактнее и проще оперировать числами. > Я знаю наверняка что у филиала есть четырехсимвольный id. Типичная ошибка. Вы можете что-то знать только о данных, источник которых контролируете. Если где-то в какой-то другой базе данных некие данные имеют какой-то идентификатор, то в своей базе данных вы можете использовать этот идентификатор только и исключительно в виде <источник данных>...<идентификатор экземпляра>...<дата регистрации>. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 21:05 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am IАргументы против? унифицировав имя pk и введя его в ранг обязательных в любых таблицах, вы облегчаете вашим последователям понимание вашего кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 21:55 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
да, и при написании запросов не надо думать "а с чем связать?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 21:56 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Who am IЯ знаю наверняка что у филиала есть четырехсимвольный id. Например 0000 или 0001. сегодня это так, но где гарантия что так же будет и завтра? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 21:57 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
ОКТОГЕНиспользовую UUID. Вполне себе хороший идентификатор. Вот чтобы я не делала точно - так это назначала GUID (UUID) ключом в VLDB. На одной колоночке в 6,000,000++ строк только ключ занял 650 GB.... а мог быть всего 150 GB.... Дорого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:03 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Vika VinnerВот чтобы я не делала точно - так это назначала GUID (UUID) ключом в VLDB. На одной колоночке в 6,000,000++ строк только ключ занял 650 GB.... а мог быть всего 150 GB.... Дорого... можно узнать формулу, по которой считали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:14 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
eNoseможно узнать формулу, по которой считали? Что - деньги или поле-размер? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:17 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Vika VinnereNoseможно узнать формулу, по которой считали? Что - деньги или поле-размер? :) вот это: GUID (UUID) ключ на одной колоночке в 6,000,000++ строк только занял 650 GB ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:31 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Коллега, снимите свой вопрос... Не к лицу.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:41 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
Vika Vinner, "++" - это еще два раза по "000"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:47 |
|
||
|
Primary key не integer
|
|||
|---|---|---|---|
|
#18+
нет это ещё десять баз данных куда это всё реплицировалось ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 22:49 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36374568&tid=1542924]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
162ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
61ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 466ms |

| 0 / 0 |
