Въезжаю в разработку вэб-приложений(Django) и столкнулся с такой проблемой: начинаю создавать модель и понимаю, что он не дает создать составной первичный ключ. Как это сделать? Почему такое ограничение?
Что за современная разработка?
Просмотрел кучу разных фрэймворков и везде одно и то же.
Как решить данную проблему?
ну и не создавай.
обычно всякие фреймворки подразумевают синтетические PK.
если же оно тебе таки необходимо для обеспечения целостности,
то создай UNIQUE CONSTRAINT по нужным тебе полям,
в дополнение к синтетическому PRIMARY KEY
Здравствуйте, Alex.Che, Вы писали:
>> не дает создать составной первичный ключ.
AC>ну и не создавай. AC>обычно всякие фреймворки подразумевают синтетические PK. AC>если же оно тебе таки необходимо для обеспечения целостности, AC>то создай UNIQUE CONSTRAINT по нужным тебе полям, AC>в дополнение к синтетическому PRIMARY KEY
И оно, фреймворк то есть, не умеющее работать с составным первичным ключем понимает и обрабатывает unique constraints?
Многие и рады были бы испытать когнитивный диссонанс, но нечем.
Здравствуйте, xRAZORx, Вы писали:
RAZ>Въезжаю в разработку вэб-приложений(Django) и столкнулся с такой проблемой: начинаю создавать модель и понимаю, что он не дает создать составной первичный ключ. Как это сделать? Почему такое ограничение?
Это хороший повод задуматься, а нужен ли тебе составной первичный ключ.
Здравствуйте, paucity, Вы писали:
P>Здравствуйте, wildwind, Вы писали:
W>>Это хороший повод задуматься, а нужен ли тебе составной первичный ключ.
P>Может это повод задуматься об убогости фреймворка? Не?
Здравствуйте, Pek2014, Вы писали:
P>ИМХО: Составной первичный ключ — зло.
P>Очевидно составной первичный ключ соблазнил тебя тем, что он естественный (натуральный).
P>ИМХО: Натуральный ключ — зло.
P>ИМХО: Натуральный составной ключ — зло в квадрате.
P>Обоснование напишу позже, если будет интересно.
Собственно там две здравые мысли: IB>Использовать ли составной ключ или не использовать — дело предпочтений и особенностей конкретного проекта ....
klopodav>Зато у естественных первичных ключей есть большой недостаток: в реальной жизни они встречаются очень редко.
Кстати, противники естественных ключей как раз таки зачастую приводя примеры "как все плохо с естественными ключами" демонстрируют что-то другое, а не естественные ключи
Многие и рады были бы испытать когнитивный диссонанс, но нечем.
Здравствуйте, xRAZORx, Вы писали:
RAZ>Въезжаю в разработку вэб-приложений(Django) и столкнулся с такой проблемой: начинаю создавать модель и понимаю, что он не дает создать составной первичный ключ. Как это сделать? Почему такое ограничение? RAZ>Что за современная разработка? RAZ>Просмотрел кучу разных фрэймворков и везде одно и то же. RAZ>Как решить данную проблему?
Здравствуйте, Pek2014, Вы писали:
RAZ>>...не дает создать составной первичный ключ. P>ИМХО: Составной первичный ключ — зло.
Бред.
P>Очевидно составной первичный ключ соблазнил тебя тем, что он естественный (натуральный). P>ИМХО: Натуральный ключ — зло.
Тоже бред.
Но это не главное, главное, что ты тут путаешь составной ключ и естественный ключ.
Это ортогональные понятия. Т.е. они никак не всязаны.
А потому эту ветку обсуждения лучше не развивать.
Надо человеку составной ключ -- пусть делает, его дело.
Все нормальные ORM фреймворки это позволяют, иначе в какой-то момент фреймворк
рискует не быть способным работать с существующей уже базой данных, а если так, кому
он тогда будет нужен ?
У товарища вполне конкретные проблемы с конкретным фреймворком, и не надо его грузить
философскими темами, как плохи естественные ключи.