Как стать автором
Поиск
Написать публикацию
Обновить

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

"проблема 2000 года" вас не беспокоит?
Хорошо, что мы не в Америке. Там бы обязательно на сайте появились феминистки, которых бы возмутил факт, что женскому полу присвоен признак 0, а не 1 :)
Это не признак, это трактовка :-) Вглядитесь в начертание "0" и "1", вспомните старика Фрейда... :-)
Верно :)
Но опять же есть некоторые НО. Вот даю картинку с MySpace:
Варианты пола на MySpace

Тут вариант с 0 или 1 явно не пройдёт...
Пол — это просто "Sex", а здесь про ориентацию. А их столько напридумывать можно... Придется int использовать :-)
Да уж, это точно. А ведь в демократических странах есть варианты «женщина — бывший мужчина» и «мужчина — бывшая женщина». Да, однозначно, только int. Или недемократический выбор пола :))
:) думаю можно оставить, вполне логично, хоть и не сразу понял почему именно в таком порядке
Над такими вещами уже давно не думают...
странный вопрос... хотите так - делайте так, единственно что тут не учитывается вариант "не скажу".
Не силен в Руби, вернее вообще не знаю, но разве на нем нет состояние null?
nil, но Boolenan на то и Boolean что в нём либо тру либо фалс
Не знаю как в Руби, но Boolean на то и Boolean, что может быть null(не указан).
Такое поведение обычно только в БД. В C# для этого существует тип "bool?", а обычный bool принимает только true или false.
Это нормальное поведение для языка программирования. Минус #C.
расскажите подробнее про то как один бит может иметь три состояния?
А может в C# используются кубиты?
Никак, если это примитив, а у объекта как раз может быть состояние null, что можно отображать как "не указан". Или в ruby нет Boolean объектов, только примитивы? Что-то сомниваюсь.
Возможно, это нормальное поведение для языков с динамической типизацией. C# не является таким языком (хотя, как указано выше, можно тип объявить как nullable, что, как мне видится, сделано как раз для облегчения задач ORM). Но это не "плюс" и не "минус" — это просто другой язык.
Возможно, это нормальное поведение для языков с динамической типизацией. C# не является таким языком (хотя, как указано выше, можно тип объявить как nullable, что, как мне видится, сделано как раз для облегчения задач ORM). Но это не "плюс" и не "минус" — это просто другой язык.
для Boolean null = false
да вы что, тогда и для int null = 0, для char null = ""?
нет.
Очень даже логично и красиво, с точки зрения построения БД. Однако не красиво не давать возможности анонимизировать себя в плане пола. В итоге у вас будет куча пользователей того пола, который у вас будет стоять по умолчанию в списке SELECT.

И ещё, представьте ситуацию: я проектирую БД для своего сайта, и хочу почитать хорошие мысли по этому поводу на Хабре. Так вот, ваш пост я не найду, т.к. вы не правильно заполнили поле «теги, метки».
Для пущей политкорректности можно использовать одно поле для собственно признака пола — «1» или «0», а второе поле — для ответа на вопрос: «Ваш пол — 1 или 0?» =)
НЛО прилетело и опубликовало эту надпись здесь
С точки зрения архитектуры — отвратительно. Булевский тип имеет два совершенно определённых значения: "ложь" и "истина". Очевидно, что "пол" — это не "ложь" и "истина", а, если хотите, перечисление (enumeration). Зачем использовать для хранения этого значения неподходящий тип, руководствуясь исключительно соображениями размера поля в базе? Всё-таки "веб-программист" — это диагноз.
НЛО прилетело и опубликовало эту надпись здесь
Что вы выигрываете таким образом?
Семантическую корректность.
Отвлекитесь на секунду от полей в базе данных. У человека есть признак "пол" или признак "мужчина"? До последнего времени я слышал только о "поле". Так с какой радости вы его впихиваете в boolean, который хранит _логическое_ значение?
Да, с точки зрения семантики к "isMan" не придерёшься, но с точки зрения объектно-ориентированной архитектуры это выглядит ужасно.
Ну, во-первых, я ничего никуда не «впихиваю». Но я считаю, что этот вариант в общем допустим, хотя, сам бы я его вряд ли бы использовал.

Неприятно выглядят ваши реплики, изобилующими эпитетами «отвратительно», «ужасно». Обсуждайте аргументированно. Предлагайте варианты. Тогда, возможно, консенсус будет достигнут.

С уважением :)
В первом же моём ответе была рекомендация использовать более подходящий enumeration для этой цели.
И это хорошо :)
НЛО прилетело и опубликовало эту надпись здесь
Очевидно, что это будет overkill.
А если пол неизвестный? Вводить поле isSexSeleced ?
НЛО прилетело и опубликовало эту надпись здесь
С точки зрения архитектуры использование 0 и 1 для пола это прекрасно.
А то, что он называет такое boolean, это трудное детство.
не знаю почему, но уже очень давно в своих проектах использую
public $Sex; // Пол: 0 — мужской, 1 — женский
ну а в бд поле типа int

по порядку как в массивах 0,1,2,3…
имхо, неверно.
Идеологически "0" - это скорей отсутствие чего-то, чем что-то конкретное.
я во всех проектах принимаю за стандарт что "1" - "да", "2" - "нет",
конкретно по отнощению к полу "1" - "М", "2" - "Ж".

Разубедите меня :-)
Каких только чудес нет на свете :)
НЛО прилетело и опубликовало эту надпись здесь
ISO тоже такое для пола определила. Но видимо про гермафродитов они не слыхали...
Вот потом будешь своё чудо через годик править, или кто другой будет. И будете натужно вспоминать, что же значит 0 или 1 вот в этом месте.

По-хорошему, чтобы всегда понимать, нужно что-то вроде набора констант (т.е. enum в БД). Тогда, увидев if ('male' === somebody.sex), понимание придёт сразу.
1) В Тайване уже ввели третий пол официально.
2) Булеввский тип - это наличие признака или отсутствие, а не выбор из двух альтернатив.
Не в Тайване, а в Тайланде. Он - несколько более раскрепощенная в нравах страна, чем Тайвань. И еще не официально пока. 21 мая 2007 г. еще только готовился проект, бюолее новых сведений пока нету у меня. Но это так, между, так сказать, грешным делом.
Ошибся. Помню, что на Т.
Можно поставить вопрос так: «Вы чувствуете себя мужчиной?»
А если ответ "Нет" то а вывод: "Все мы не без недостатков" (дорогие дамы, простите, шутка юмора)
НЛО прилетело и опубликовало эту надпись здесь
Ну и дебаты только из-за одного пола, страшно представить что было бы, если спросили бы какого типа лучше сделать поле возраст :)
Соглсаен. Начали. Версия первая — вычисляемое поле ;)
Да вариант не плохой, может лучше char :)
LONGTEXT
SEX - два раза в неделю.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации