Пол в базах данных

Кстати, кто как обозначает пол в таблицах баз данных (предположим, что типа enum у нас нет)?

Есть вариант «'f', 'm', 'u'», я обычно это делаю как «-1, 0, 1» (догадайтесь как мужчина), один разработчик у нас делает «1, 0, null» (догадайтесь где женщина), но я видел варианты «0, 1, 2», «'+', '', '-'» и множество других.
22 октября 2008 16:28

coprophagous.ru (coprophagous.ru)
22 октября 2008, 16:52

Мужские шовинистические свиньи.

roman (alax.myopenid.com)
22 октября 2008, 16:55

Я бы сделал null, 0, 1[, 2... если требуется классификация нестандартных ситуаций]

zencd.livejournal.com (zencd.livejournal.com)
22 октября 2008, 17:17

Мне больше нравится вариант с битовыми масками.

zencd.livejournal.com (zencd.livejournal.com)
22 октября 2008, 17:18

Хотя почему «масками»… «флагами», скорее.

coprophagous.ru (coprophagous.ru)
22 октября 2008, 17:19

is_has_penis

wiktar (wiktar.com)
22 октября 2008, 17:25

Лучший вариант - с буквами. Сразу понятно без документации: male, female, unknown (unisex?).

В любых других вариантах без документации не разберёшься. Ну разве что "0" и "1" можно догадаться.

bolk (bolknote.ru)
22 октября 2008, 18:00, ответ предназначен zencd.livejournal.com:

Это какой? is_has_penis по предложению Смирнова.

Ну, в принципе, хороший вариант. Флаги «имеется пенис», «имеются сиськи», тогда и shemale можно учитывать, ага.

bolk (bolknote.ru)
22 октября 2008, 18:01, ответ предназначен wiktar (wiktar.com):

1 и -1 нельзя догадаться? :)) А 0 и 1 очевиднее?

bolk (bolknote.ru)
22 октября 2008, 18:01, ответ предназначен roman (alax.myopenid.com):

null, 0, 1 — понятно. 2 — это что? Болезнь какая-то? :)

bolk (bolknote.ru)
22 октября 2008, 18:02, ответ предназначен coprophagous.ru:

Shemale куда отнесёшь?

siberian-husky.livejournal.com (siberian-husky.livejournal.com)
22 октября 2008, 19:34

Национальность: Да

aire.livejournal.com (aire.livejournal.com)
22 октября 2008, 19:43

«is_male» по логике «все, кто не мужчины -- женщины» :-)

bolk (bolknote.ru)
22 октября 2008, 20:09, ответ предназначен aire.livejournal.com:

А почему не is_female? Что за сексизм? :)

bolk (bolknote.ru)
22 октября 2008, 20:10, ответ предназначен siberian-husky.livejournal.com:

Sex: oh, yeah! («Не грози Южному Централу, попивая сок у себя в квартале»)

zencd.livejournal.com (zencd.livejournal.com)
22 октября 2008, 23:51, ответ предназначен bolk (bolknote.ru):

Ну shemale — это только начало… Зато какой задел на будущее!

splurov.livejournal.com (splurov.livejournal.com)
23 октября 2008, 06:18

А почему это у нас типа enum нету? :-)

bolk (bolknote.ru)
23 октября 2008, 08:11, ответ предназначен splurov.livejournal.com:

Что за человек, всё объяснить надо. Ну… пусть СУБД его не поддерживает.

bolk (bolknote.ru)
23 октября 2008, 08:20, ответ предназначен zencd.livejournal.com:

Ага, надо вводить поля: «социальный пол», «биологический пол» и так далее.

isk.livejournal.com (isk.livejournal.com)
23 октября 2008, 08:24

male, female, sometimes camel...

splurov.livejournal.com (splurov.livejournal.com)
23 октября 2008, 09:04, ответ предназначен bolk (bolknote.ru):

Выкинь такую СУБД :-))

Если серьезно, то is_male (-1 - undefined, 0, 1)
Не is_female потому что мне, как разработчику-мужчине is_male ближе.

bolk (bolknote.ru)
23 октября 2008, 09:19, ответ предназначен splurov.livejournal.com:

Это умозрительная задача. Кстати, СУБД такие встречаются и выкидывать их не нужно, они хороши.

-1 — это, конечно же, не undefined :) Прояви фантазию.

bolk (bolknote.ru)
23 октября 2008, 09:20, ответ предназначен isk.livejournal.com:

значения: «|», «O», «^^»

splurov.livejournal.com (splurov.livejournal.com)
23 октября 2008, 10:23, ответ предназначен bolk (bolknote.ru):

-1 не undefined, если колоночка называется gender ;-)

и вместо «|», «O», «^^» - ".!.", "Ø", "(o)(o)"

bolk (bolknote.ru)
23 октября 2008, 10:35, ответ предназначен splurov.livejournal.com:

^^ — это camel :)

Alisey (alisey.myopenid.com)
23 октября 2008, 12:21

-1 - это мужик в расцвете сил
1 - это либо баба, либо мужик, который уже не мужик, а так
0 - это дупло где они живут
1^^ 1^^ 1^^ - корован

Alisey (alisey.myopenid.com)
23 октября 2008, 12:26

В одной системе есть 5 (пять) вариантов пола.
Когда понадобилась идентификация пар, автор не стал долго думать, и добавил для них 3 дополнительных пола.

eattheopera.myopenid.com (eattheopera.myopenid.com)
23 октября 2008, 12:34

F, M, null
oracle

bolk (bolknote.ru)
23 октября 2008, 14:55, ответ предназначен Alisey (alisey.myopenid.com):

Догадываюсь, что система называлась «Мамба» :)

bolk (bolknote.ru)
23 октября 2008, 14:57, ответ предназначен eattheopera.myopenid.com:

Вы уж так серьёзно не относитесь :) «Oracle» :) В MySQL и даже mSQL это будет выглядеть так же :)

ibnteo.livejournal.com (ibnteo.livejournal.com)
23 октября 2008, 15:54

Кому нужен этот пол? Компьютеру надо лишь знать как обращаться к человеку, поэтому надо расширить выбор еще и статусом:
Г-н, Г-жа, М-р, М-с, и т.д.

bolk (bolknote.ru)
23 октября 2008, 17:08, ответ предназначен ibnteo.livejournal.com:

Какая неожиданная точка зрения, ага.

echo 'Марина Силова получил', $sex == 'Г-жа' || $sex == 'М-с' ? 'а' : '', ' сообщение.';

Неожиданно! Свежо! Надо внедрять!

kguryanov.livejournal.com (kguryanov.livejournal.com)
27 октября 2008, 16:54

Ага. А с «'f', 'm', 'u'» видимо вот так, да? ))

echo 'Марина Силова получил', $sex == 'f' ? 'а' : ($sex == ' u' ? 'о' : ''), ' сообщение.';

Вообще мне с моим махровым шовинизмом всегда хватало sex=[true, false] (угадайте где кто)

Но однажды заказчик захотел чтобы поле gender брало инфу из таблицы gender где изначально было три значения - male, femail, undefined. Он явно предполагал что этот список может когда-нить расшириться

bolk (bolknote.ru)
27 октября 2008, 19:20, ответ предназначен kguryanov.livejournal.com:

По крайней мере там нет две записи на один пол.

Ну, догадаться легко: sex=true — люди с нормальной (и выше) половой конституцией, sex=false — без оной.

Заказчик правильно думал. Например, сайты знакомств предлагали сначала два пола, теперь там куча комбинаций, типа M+M, Ж+Ж, М+Ж. Ждём Ж+Ж+Ж, М+Ж+Ж, М+Ж+М и так далее.

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)