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

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

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

Читайте также

GnuUnils
Порекомендовали GNU Utils [ >>> ] Скачал. Безобразие, а не утилиты!
2004
Фильтры для спама
Все эти фильтры для спама на бесплатных веб-мылах — полная лажа. Я придумал ещё один способ бороться со спамом.
2004

Комментарии 33

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

В любых других вариантах без документации не разберёшься. Ну разве что «0» и «1» можно догадаться.
Евгений Степанищев (bolknote.ru) автор № 7
Комментарий для zencd.livejournal.com:

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

Ну, в принципе, хороший вариант. Флаги «имеется пенис», «имеются сиськи», тогда и shemale можно учитывать, ага.
splurov.livejournal.com № 20
Комментарий для Евгения Степанищева:

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

Если серьезно, то is_male (-1 — undefined, 0, 1)
Не is_female потому что мне, как разработчику-мужчине is_male ближе.
Евгений Степанищев (bolknote.ru) автор № 21
Комментарий для splurov.livejournal.com:

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

-1 — это, конечно же, не undefined :) Прояви фантазию.
Alisey (alisey.myopenid.com) № 25
-1  — это мужик в расцвете сил
1 — это либо баба, либо мужик, который уже не мужик, а так
0 — это дупло где они живут
1^^ 1^^ 1^^ — корован
Alisey (alisey.myopenid.com) № 26
В одной системе есть 5 (пять) вариантов пола.
Когда понадобилась идентификация пар, автор не стал долго думать, и добавил для них 3 дополнительных пола.
ibnteo.livejournal.com № 30
Кому нужен этот пол? Компьютеру надо лишь знать как обращаться к человеку, поэтому надо расширить выбор еще и статусом:
Г-н, Г-жа, М-р, М-с, и т.д.
Евгений Степанищев (bolknote.ru) автор № 31
Какая неожиданная точка зрения, ага.

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

Неожиданно! Свежо! Надо внедрять!
kguryanov.livejournal.com № 32
Ага. А с «'f', 'm', 'u'» видимо вот так, да? ))

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

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

Но однажды заказчик захотел чтобы поле gender брало инфу из таблицы gender где изначально было три значения — male, femail, undefined. Он явно предполагал что этот список может когда-нить расшириться
Евгений Степанищев (bolknote.ru) автор № 33
По крайней мере там нет две записи на один пол.

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

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