Pull to refresh

Comments 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?» =)
UFO just landed and posted this here
С точки зрения архитектуры — отвратительно. Булевский тип имеет два совершенно определённых значения: "ложь" и "истина". Очевидно, что "пол" — это не "ложь" и "истина", а, если хотите, перечисление (enumeration). Зачем использовать для хранения этого значения неподходящий тип, руководствуясь исключительно соображениями размера поля в базе? Всё-таки "веб-программист" — это диагноз.
UFO just landed and posted this here
Что вы выигрываете таким образом?
Семантическую корректность.
Отвлекитесь на секунду от полей в базе данных. У человека есть признак "пол" или признак "мужчина"? До последнего времени я слышал только о "поле". Так с какой радости вы его впихиваете в boolean, который хранит _логическое_ значение?
Да, с точки зрения семантики к "isMan" не придерёшься, но с точки зрения объектно-ориентированной архитектуры это выглядит ужасно.
Ну, во-первых, я ничего никуда не «впихиваю». Но я считаю, что этот вариант в общем допустим, хотя, сам бы я его вряд ли бы использовал.

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

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

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

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

По-хорошему, чтобы всегда понимать, нужно что-то вроде набора констант (т.е. enum в БД). Тогда, увидев if ('male' === somebody.sex), понимание придёт сразу.
1) В Тайване уже ввели третий пол официально.
2) Булеввский тип - это наличие признака или отсутствие, а не выбор из двух альтернатив.
Не в Тайване, а в Тайланде. Он - несколько более раскрепощенная в нравах страна, чем Тайвань. И еще не официально пока. 21 мая 2007 г. еще только готовился проект, бюолее новых сведений пока нету у меня. Но это так, между, так сказать, грешным делом.
Ошибся. Помню, что на Т.
Можно поставить вопрос так: «Вы чувствуете себя мужчиной?»
А если ответ "Нет" то а вывод: "Все мы не без недостатков" (дорогие дамы, простите, шутка юмора)
UFO just landed and posted this here
Ну и дебаты только из-за одного пола, страшно представить что было бы, если спросили бы какого типа лучше сделать поле возраст :)
Соглсаен. Начали. Версия первая — вычисляемое поле ;)
Да вариант не плохой, может лучше char :)
Sign up to leave a comment.

Articles