|
|
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Впервые с таким столкнулся в существующей системе. До этого всегда работал с системами, где поле пола человека никуда не ссылалось, а содержало значения пола. Интересно, какие преимущества и недостатки у каждого из этих подходов? Лично я считаю, что делать отдельную таблицу для этого - это лишние накладные расходы. То есть, это неудачное решение. Интересно было бы услышать обоснование противоположной точки зрения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 14:26 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Гм... я вижу только одну положительную сторону для работы через интерфес, это если нужно внести изменения в наименование, то их нужно будет делать отлько в одной записи в таблице полов, а не в каждой записи с меняемым названием пола в таблице с людьми. Этот "плюс" легко снимается непосредственным запросом в базу, поэтому и указал, что вижу его только при работе с базой через интерфейс. А вообще мне кажется что это лишнее, так делать не стоит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 14:38 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> содержало значения пола Модератор: Вы сами-то понимаете, что понятие не имеет однозначной интерпретации? Сейчас придет чел с ником softwarer и расскажет вам, что пол бывает еще и детский. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 14:52 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
видно оставили возможность легко и непринужденно добавить пол, который намекает на нетрадиционную ориентацию =))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 14:54 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Дело, имхо, не в количестве полов (хотя и тут возможны вариации), сколько в количестве атрибутов у пола. Одних только названий может быть несколько: id LetterName ShortName FullName0ММужМужской1ЖЖенЖенский ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 15:11 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621> содержало значения пола Модератор: Вы сами-то понимаете, что понятие не имеет однозначной интерпретации? Сейчас придет чел с ником softwarer и расскажет вам, что пол бывает еще и детский. Детский пол? Это шутка такая, да? Насколько я знаю, пол человека не определён у эмбриона до какого-то этапа его развития. Потом наступает этот этап, клетки делятся определённым образом, и пол становится определённым. Или Вы имеете в виду Синдром Клайнфельтера ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 15:19 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> Это шутка такая, да? Если бы. Это реальный - с его слов - пример того, как одно кривое решение влечет за собой еще более кривые. Причем, рассказывал он об этом с гордостью. > пол человека Не пол, а гендерная принадлежность, наверное, да? Которая, вообще говоря, не обязана быть связанной с официально зарегистированным статусом. Что вы подразумеваете под "полом"? Наличие детородной функции? Возможность получения пенсии по достижении определенного возраста? Или способ обращения к пользователю чего-либо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 16:24 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Это шутка такая, да? Если бы. Это реальный - с его слов - пример того, как одно кривое решение влечет за собой еще более кривые. Причем, рассказывал он об этом с гордостью. А Вас не затруднит привести пруфлинк? guest_20040621> пол человека Не пол, а гендерная принадлежность, наверное, да? А в чём отличие? guest_20040621Которая, вообще говоря, не обязана быть связанной с официально зарегистированным статусом. Что вы подразумеваете под "полом"? Наличие детородной функции? Возможность получения пенсии по достижении определенного возраста? Или способ обращения к пользователю чего-либо? Это зависит от того, для чего в системе учитывается эта информация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 16:41 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> А Вас не затруднит привести пруфлинк? Затруднит. Лень искать. Проще подождать, пока он сам объявится и расскажет об этом. > А в чём отличие? Запись в паспорте от возможности рожать детей отличается? Или это одно и то же? > Это зависит от того, для чего в системе учитывается эта информация. Для одной базы данных один и тот же человек - гермафродит, для другой - мужчина, для третей - женщина? Вас кто, простите, проектированию учил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 16:53 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621> А в чём отличие? Запись в паспорте от возможности рожать детей отличается? Или это одно и то же? Запись в паспорте может быть и ошибочной. У меня одному знакомому паспорт с женским полом выдали. Он и не заметил, пока его однажды на проходной охранник не тормознул. :) guest_20040621> Это зависит от того, для чего в системе учитывается эта информация. Для одной базы данных один и тот же человек - гермафродит, для другой - мужчина, для третей - женщина? Я думаю, вряд ли такое возможно. guest_20040621Вас кто, простите, проектированию учил? А с чего Вы взяли, что меня проектированию вообще кто-то учил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:02 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621Для одной базы данных один и тот же человек - гермафродит, для другой - мужчина, для третей - женщина?А почему бы и нет? Особенно если базы для кардинально разных предметных областей и/или стран. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:05 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
miksoftguest_20040621Для одной базы данных один и тот же человек - гермафродит, для другой - мужчина, для третей - женщина?А почему бы и нет? Особенно если базы для кардинально разных предметных областей и/или стран. Кстати, да. Слышал, что в Тайланде в паспорте всегда указывается тот пол, который был у человека при рождении. Так что и у трансгендеров он остаётся неизменным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:11 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
miksoftДело, имхо, не в количестве полов (хотя и тут возможны вариации), сколько в количестве атрибутов у пола. Одних только названий может быть несколько: id LetterName ShortName FullName0ММужМужской1ЖЖенЖенский а 0 и 1 зачем? нельзя М и Ж использовать как код? или по умолчанию, если пол не указан, то М ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:16 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Pastic, а ещё бывает, что люди пол меняют.. и тогда надо указывать когда был какого пола и на основании какого документа.. :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:18 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
ВВ3нельзя М и Ж использовать как код?А как насчет иноязычных локализаций? ВВ3или по умолчанию, если пол не указан, то М ?Если не указано, т.е. NULL, то как быть со ссылочной целостностью? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:20 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
ВВ3Pastic, а ещё бывает, что люди пол меняют.. и тогда надо указывать когда был какого пола и на основании какого документа.. :)) Да, но отдельная таблица под пол тут не при чём. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:24 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
ВВ3miksoftДело, имхо, не в количестве полов (хотя и тут возможны вариации), сколько в количестве атрибутов у пола. Одних только названий может быть несколько: id LetterName ShortName FullName0ММужМужской1ЖЖенЖенский а 0 и 1 зачем? нельзя М и Ж использовать как код? или по умолчанию, если пол не указан, то М ? Так можно и до абсурда дойти - а таблички в которы 3, 4 , 5 записей! Где предел? 10? 20? Может и их в уме держать? А если заплутаете потом в отчетах или других формах - вспоминать надо будет цыхверки :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 17:33 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621понимаете, что понятие не имеет однозначной интерпретацииКонечно не имеет! Видел БД, в которой пол клиента имел три значения. IDSex_nameММужскойЖЖенскийЮЮридическое лицо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 21:37 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
spТак можно и до абсурда дойти - а таблички в которы 3, 4 , 5 записей! Где предел? 10? 20? Может и их в уме держать? А если заплутаете потом в отчетах или других формах - вспоминать надо будет цыхверки :)) поддерживаю, лучше битовая нагрузка на бд чем потом воспоминалки загадывать ) зы тут вас код неправильно выставлен - 0 это Ж так как нет ничего, а 1 - М так как болтается ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 22:40 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
koJIo6okвоспоминалкиЗачем воспоминалки, если таблица есть? Кстати, пришла еще одна мысль. Не во всех СУБД есть CHECK-констрейнты и триггеры срабатывают не всегда, так что такой метод мог использоваться для контроля значений в поле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2011, 22:45 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
spТак можно и до абсурда дойти - а таблички в которы 3, 4 , 5 записей! Где предел? 10? 20? Может и их в уме держать? А если заплутаете потом в отчетах или других формах - вспоминать надо будет цыхверки :))Чтоб не было абсурда и коррупции юзайте М и Жо ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 04:12 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
miksoft id LetterName ShortName FullName0ММужМужской1ЖЖенЖенский Билогическое образование и жизненный опыт протестуют. Должно быть id LetterName ShortName FullName 1 ММужМужской 0 ЖЖенЖенский Так кстати и запомнить легче :) PS Ну не бань меня, модератор! Этот топик - такая милая пурга, что не смог пройти мимо:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 09:39 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
доп. значения - кроме как уже выше писали "отсутствует", ещё и "неидентифицируем" (например из-за повреждений) почему плохо непосредственно М Ж - потому что естественные ключи зло, потому что для справочников может использоваться универсальный компонент, умеющий работать только с определённым типом в качестве pk (guid или int) U-geneБилогическое образование и жизненный опыт протестуют. Должно быть 1 ,М,Муж,Мужской 0 ,Ж,Жен,Женский безо всяких смехуёчков, смысл этих символов по замыслу авторов (древних индийцев) именно такой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.09.2011, 17:53 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Анонимусдоп. значения - кроме как уже выше писали "отсутствует", ещё и "неидентифицируем" (например из-за повреждений)Юрлицо ещё может быть. Оно бесполое ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2011, 01:48 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
АнонимусЪ, у юрлица нет такого атрибута ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2011, 14:11 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Юрлицо -- это как врач, который не может быть мужчиной или женщиной ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2011, 17:25 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
CaseWhenguest_20040621понимаете, что понятие не имеет однозначной интерпретацииКонечно не имеет! Видел БД, в которой пол клиента имел три значения. IDSex_nameММужскойЖЖенскийЮЮридическое лицо Это пять! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 09:46 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
koJIo6okу юрлица нет такого атрибутаСовершенно верно, поэтому в поле Sex должна быть возможность указания null либо в явном виде "юрлицо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 12:31 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
АнонимусЪ, либо у юрлица нет такого атрибута )) 'контрагенты' пусть будут так, необязательно ведь это одна таблица ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 12:41 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Я считаю неудачным решение хранить информацию о физических и юридических лицах в одной таблице. Понятно, что у них есть общие атрибуты и эти атрибуты можно хранить в одной таблице. Но хранить в этой таблице поле "пол" - это не самый лучший вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 12:51 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
я бы счас тоже сделал три таблицы, вместо теперешней одной и могучей )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 13:35 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> Понятно, что у них есть общие атрибуты Ни одного. Либо учитесь проектированию, либо прекращайте здесь писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 13:58 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Понятно, что у них есть общие атрибуты Ни одного. Я Вам могу привести несколько. Это дата рождения и дата смерти. Для юрлица - это дата, когда оно было зарегистрировано, и дата, когда была зарегистрирована его ликвидация. Ещё место рождения. guest_20040621Либо учитесь проектированию, либо прекращайте здесь писать. Не говорите мне, что я должен делать, и я не скажу, куда Вам надо пойти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 14:07 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
koJIo6okя бы счас тоже сделал три таблицы, вместо теперешней одной и могучей )) Просто периодически нужно делать рефакторинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 14:08 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
koJIo6okя бы счас тоже сделал три таблицы, вместо теперешней одной и могучей )) Так разделите. А для поддержания совместимости сделайте вьюху с INSTEAD OF - триггерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 14:13 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
разделить ведь не проблема, а вот переписать хп надо время, в рабочее время какбы и нельзя, выходит вечером или на выходных как бы и не охота, тем более летом, но вы правы, все равно придется и лучше раньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 15:15 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
koJIo6okразделить ведь не проблема, а вот переписать хп надо время, в рабочее время какбы и нельзя, выходит вечером или на выходных как бы и не охота, тем более летом, но вы правы, все равно придется и лучше раньше Мысль о необходимости рефакторинга необходимо донести до начальства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 15:37 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
U-genemiksoft id LetterName ShortName FullName0ММужМужской1ЖЖенЖенский Билогическое образование и жизненный опыт протестуют. Должно быть id LetterName ShortName FullName 1 ММужМужской 0 ЖЖенЖенский Так кстати и запомнить легче :) PS Ну не бань меня, модератор! Этот топик - такая милая пурга, что не смог пройти мимо:) теоретики :)) курите "ОБЩЕРОССИЙСКИЙ КЛАССИФИКАТОР ИНФОРМАЦИИ О НАСЕЛЕНИИ" (ОКИН) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 16:47 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
PasticCaseWhenпропущено... Конечно не имеет! Видел БД, в которой пол клиента имел три значения. IDSex_nameММужскойЖЖенскийЮЮридическое лицо Это пять! Чувак явно Борхеса читал >"ОБЩЕРОССИЙСКИЙ КЛАССИФИКАТОР ИНФОРМАЦИИ О НАСЕЛЕНИИ" (ОКИН) Неплохо. Можно брать за основу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 17:26 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Шайтанкурите "ОБЩЕРОССИЙСКИЙ КЛАССИФИКАТОР ИНФОРМАЦИИ О НАСЕЛЕНИИ" (ОКИН)Норри Мэй-Велби (бесполый человек) и Бишну Адхикари (человек среднего пола) не согласны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 17:29 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
miksoftШайтанкурите "ОБЩЕРОССИЙСКИЙ КЛАССИФИКАТОР ИНФОРМАЦИИ О НАСЕЛЕНИИ" (ОКИН)Норри Мэй-Велби (бесполый человек) и Бишну Адхикари (человек среднего пола) не согласны моментом согласятся, если потребуется в российскую налоговую декларацию подавать нашим налоговикам забугорные решения не указ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 17:36 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> курите "ОБЩЕРОССИЙСКИЙ КЛАССИФИКАТОР ИНФОРМАЦИИ О НАСЕЛЕНИИ" (ОКИН) Я бы ни вам, Шайтан, ни кому-то еще не рекомендовал без острой необходимости (острая необходимость в данном случае читается как "внутренний продукт для госструктур") пользовать отечественные поделки, именуемые классификаторами. Те, которые не передраны с зарубежных аналогов - откровенное дерьмо. Вы привели как раз такой пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 18:27 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621, что не понравилось-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 20:47 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> что не понравилось-то? А что должно было понравиться? Кривая классификация, кривые формулировки. О вынужденном их использовании сказал, больше ни для чего они не пригодны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2011, 22:03 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
guest_20040621> курите "ОБЩЕРОССИЙСКИЙ КЛАССИФИКАТОР ИНФОРМАЦИИ О НАСЕЛЕНИИ" (ОКИН) Я бы ни вам, Шайтан, ни кому-то еще не рекомендовал без острой необходимости (острая необходимость в данном случае читается как "внутренний продукт для госструктур") пользовать отечественные поделки, именуемые классификаторами. Те, которые не передраны с зарубежных аналогов - откровенное дерьмо. Вы привели как раз такой пример. коллега не в курсе, что любая отчётность в эти самые гос. структуры из "внешнего мира" подаётся с применением этого классификатора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2011, 12:12 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Отчетность в госструктуры и контролирующие органы... (Громкие всхлипывания) Не надо о грустном... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2011, 12:46 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
> коллега не в курсе Еще как в курсе. Но еще более в курсе того, что дешевле, проще и правильнее построить соответствие между кривым классификатором и используемым. > с применением этого классификатора? Расскажите, пожалуйста, какую именно отчетность ваша лавка сдает с применением именно этого классификатора? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2011, 13:42 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
мы тут всё ржем, а, тем временем, предметная область подкидывает сюрпризы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 09:37 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Ржали только вы, дружище. Сюрпризов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2011, 11:34 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
С точки зрения теории правильно для пола ( как впрочем и для имён, отчеств) делать отдельную таблицу. однако все мы не без греха, и сплошь и рядом делаем денормализацию, правда, одни (опытные бойцы) осознанно, другие (молодёжь) не осознанно. Тут можно привести житейскую мудрость: "Что-бы нарушать правила, их нужно очень хорошо знать". Если вы решили денормализовать таблицу, то должны чётко осознавать, что вы делаете нарушение, и соответственно, принять все меры, что-бы быстро и безболезненно восстановить Status Quo. Например, вы в черновом варианте БД создали таблицу PERSONNEL. Решили, что информацию о половой принадлежности будете хранить в поле SEX. сразу вопрос: "какой тип поля, строковой или целочисленный?" Неопытный боец выберет строковой тип (это-же так удобно, сразу виден пол человека!) и в дальнейшем получит следующие грабли: 1. вместо ожидаемых им двух значений "М" и "Ж", через некоторое время в таблице он найдёт следующие варианты пола: "М"(рус), "Ж", "M"(англ), "м"(рус), "ж", "m"(англ), а так-же кучу прочего мусора. Валидация вводимых значений не поможет, так как user'ы задолбают ~ следующим: "Программа не работает, я жму на клавишу "M" (в английском регистре), а она ругается " 2. В один прекрасный день заказчик скажет: женщины у нас уходят на пенсию в 55лет, мужчины в 60, женщины уходят в декрет, а мужчины нет, в женский праздник 8 марта мы дарим цветы и конфеты, а на 23 февраля коньяк и конфеты. И всё, будете долгими зимними вечерами перелопачивать БД и приложение, приводя её к нормальному виду, т.е. добавляя таблицу SEX. Опытный боец заранее продумает эту ситуацию, для поля SEX предпочтёт целочисленные значения (0,1), создаст в клиентском приложении соответствующую инфраструктуру. При необходимости (п.2), в течении нескольких минут создаст необходимую табл. SEX, из поля PERSONNEL.SEX сделает внешний ключ, и вуаля! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 09:47 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
удивительно... т.е. ладно там нормализация, не всегда она и помогает, но выборка по текстовому значению, когда "ключ" можно заменить целочисленным - это нормально? Другими словами, если вам нужно выбрать всех мужчин, то Код: plaintext 1. 2. Этот примитивный запрос текущие мощности обработаю с легкостью, но как только он встанет в очередной десяток JOIN, то придет Мартин Фаулер или кто там и будет на вас скептически смотреть. Вопрос надо ставить иначе, а почему нет справочника пола?:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 09:56 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
Озверин...Другими словами, если вам нужно выбрать всех мужчин, то... Изначально я имел в виду OLTP-систему, а не хранилище данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 10:50 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
PasticОзверин...Другими словами, если вам нужно выбрать всех мужчин, то... Изначально я имел в виду OLTP-систему, а не хранилище данных. Не сталкивался в качестве разработчика с OLTP системами, но есть подозрение, что чем менее нормализованы данные в БД OLTP систем, тем печальнее становится показатель "transaction per second". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 11:01 |
|
||
|
Справочник пола человека - отдельная таблица
|
|||
|---|---|---|---|
|
#18+
ОзверинPasticпропущено... Изначально я имел в виду OLTP-систему, а не хранилище данных. Не сталкивался в качестве разработчика с OLTP системами, но есть подозрение, что чем менее нормализованы данные в БД OLTP систем, тем печальнее становится показатель "transaction per second". OLTP-системы не рассчитаны на описанную Вами ситуацию "если вам нужно выбрать всех мужчин". Они скорее рассчитаны на ситуацию "вам нужно посмотреть, является ли этот клиент мужчиной". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2011, 11:22 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1542022]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
75ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 208ms |
| total: | 414ms |

| 0 / 0 |
