powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Пол как сущность
40 сообщений из 40, показаны все 2 страниц
Пол как сущность
    #38769750
lemurry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. Проектирую учебную БД (для общества защиты животных). Я сделала пол отдельной таблицей (id и значение). Я знаю, что пол - это достаточно сложный вопрос (я была в Таиланде, например), но в рамках моей задачи я предполагаю упрощенную модель. Проблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний join. Моя интуиция подсказывает, что таблица - это удобно и естественно, а лишний join - это не проблема для современных СУБД. Подскажите пожалуйста, есть ли какие-нибудь преимущества в способе с битовым полем? Заранее спасибо.
...
Рейтинг: 0 / 0
Пол как сущность
    #38769754
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurry Проблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний joinНе спорьте с преподавателем, даже если он не прав
lemurry Моя интуиция подсказывает, что таблица - это удобно и естественно, а лишний join - это не проблема для современных СУБД.Я с вами согласен.
...
Рейтинг: 0 / 0
Пол как сущность
    #38769761
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurryПроектирую учебную БД (для общества защиты животных).
А зачем в БД ОЗЗ вообще хранить пол? По-моему, это совершенно избыточная персональная
информация.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пол как сущность
    #38769762
lemurry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovlemurryПроектирую учебную БД (для общества защиты животных).
А зачем в БД ОЗЗ вообще хранить пол? По-моему, это совершенно избыточная персональная
информация.


Имеется в виду пол животного.
...
Рейтинг: 0 / 0
Пол как сущность
    #38769767
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вашу сторону скажу только что, если пол хранится как таблица Sex(ID,Name), то представление его на клиенте ложится на эту таблицу. Если же просто хранить как бит/число, то клиент должен сам обработать эти данные в строку. Несложно, но не забыть правильно. К тому же могут быть расширения: пол в женском роде- мужская, женская, на английском- male, female. Удобнее хранить в таблице.
Но необязательно))
...
Рейтинг: 0 / 0
Пол как сущность
    #38769771
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurryИмеется в виду пол животного.
А при чём тут тогда сложности и Тайланд? Нынче животным проводят операции смены пола?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Пол как сущность
    #38769773
lemurry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovlemurryИмеется в виду пол животного.
А при чём тут тогда сложности и Тайланд? Нынче животным проводят операции смены пола?..

Это была просто шутэчка... Таиланд здесь действительно не при чем.
...
Рейтинг: 0 / 0
Пол как сущность
    #38769776
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovlemurryИмеется в виду пол животного.
А при чём тут тогда сложности и Тайланд? Нынче животным проводят операции смены пола?..
некоторые животные умеют менять пол самостоятельно ))
...
Рейтинг: 0 / 0
Пол как сущность
    #38769787
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
самостоятельно это не правильно, пусть по шедюлеру меняют )))
...
Рейтинг: 0 / 0
Пол как сущность
    #38769804
guest_20040621
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> пол - это достаточно сложный вопрос

Для людей всё просто: пол при рождении, пол, соответствующий регистрации гражданина как резидента, репродуктивные аспекты, социальные аспекты. У животных социальных аспектов, видимо, нет, и формальная регистрация пола - не норма.

> я предполагаю упрощенную модель

Упрощенная модель - пол + факт стерилизации. Т. е. таблица плюс битовое поле.

> мой преподаватель настаивает

Несмотря на то, что ваш препод гонит, вам, видимо, придётся сделать так, как он требует. Но для себя отметьте, что, например, та же мультиязычность для таблицы - в отличие от битового поля - простая операция.
...
Рейтинг: 0 / 0
Пол как сущность
    #38769935
Локки
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lemurry, проблема, как я понимаю, в отсутствии точно сформулированного ТЗ. Если заказчик, в данном случае препод, не четко сформулировал требование к возможным значениям некого параметра, в данном случае пола, то надо задать наводящий вопрос и уточнить. Если в ТЗ четко прописано, что вариантов 2 и увеличения не будет - делаем битовое поле и не паримся. Если хотите показать въедливость и неравнодушие к задаче - то можно намекнуть, что кроме М и Ж есть всякие рыбы и земноводные, которые являются естественными гермафродитами, то есть на самом деле вариантов может быть более 2. Но в конечном счете последнее слово за заказчиком, просто вам нужно запастись бумажкой, где это все прописано.
...
Рейтинг: 0 / 0
Пол как сущность
    #38770009
MSSQLAndDotNet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а почему битовое?
он - она - оно
1 - 0 - null
?
...
Рейтинг: 0 / 0
Пол как сущность
    #38770017
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSSQLAndDotNetа почему битовое?
он - она - оно
1 - 0 - null
?
Если заказчик хочет биты, пусть будут биты
...
Рейтинг: 0 / 0
Пол как сущность
    #38770029
Фотография Chippollino.01
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>убрала таблицу и использовала битовое поле
пусть твой безграмотный препод откроет школьную программу по биологии
у животных полов больше 2-х
есть и двуполые и бесполые
есть вообще виды состоящие только из самок
кроме того один и тот же пол может иметь разную зиготность
например у свиней самка монозигота, самец - гетерозигота,
а у куриц наоборот
или скажем какой пол у рабочей пчелы?
по факту женский, но не станете же вы отрицать, что она отличается от матки по половому признаку...
и это научные факты
исходить надо из предметной области, а не из штампов в голове препода.
...
Рейтинг: 0 / 0
Пол как сущность
    #38770071
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Локкиlemurry, проблема, как я понимаю, в отсутствии точно сформулированного ТЗ. Если заказчик, в данном случае препод, не четко сформулировал требование к возможным значениям некого параметра, в данном случае пола, то надо задать наводящий вопрос и уточнить. Если в ТЗ четко прописано, что вариантов 2 и увеличения не будет - делаем битовое поле и не паримся. Если хотите показать въедливость и неравнодушие к задаче - то можно намекнуть, что кроме М и Ж есть всякие рыбы и земноводные, которые являются естественными гермафродитами, то есть на самом деле вариантов может быть более 2. Но в конечном счете последнее слово за заказчиком, просто вам нужно запастись бумажкой, где это все прописано. +100500
...
Рейтинг: 0 / 0
Пол как сущность
    #38770201
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Chippollino.01или скажем какой пол у рабочей пчелы?

Надо начать с требований: границ проекта и сценариев работы.

Какие виды животных будет учитывать общество защиты?
Как оно собирается использовать поле "пол" и для каких целей?
Например, защита одиночной рабочей пчелы мне не представляется реалистичной :)

Насколько легко будет преобразовать базу, если понадобится более двух полов?

В конце концов, судя по тому, что есть учебная задача, общество существует только внутри головы препода.
Если оно рассматривает только 2 пола, соответственно надо их реализовать, когда понадобится N тогда сконвертировать базу в новый формат. Но обычно в голове преподов общества живут недолго - не больше семестра и не успевают освоиться с новыми видами животных.
...
Рейтинг: 0 / 0
Пол как сущность
    #38770424
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperChippollino.01или скажем какой пол у рабочей пчелы?

Надо начать с требований: границ проекта и сценариев работы.

Какие виды животных будет учитывать общество защиты?
Как оно собирается использовать поле "пол" и для каких целей?
Например, защита одиночной рабочей пчелы мне не представляется реалистичной :)


Не согласен. Пчёлы сейчас вымирают из-за губительного воздействия станций Wi-Fi
...
Рейтинг: 0 / 0
Пол как сущность
    #38770441
Триггерман
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurryпреподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний joinлишний join - это не аргумент. Такое можно ляпнуть, только если больше сказать нечего.
...
Рейтинг: 0 / 0
Пол как сущность
    #38770445
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
baracsЛоккиlemurry, проблема, как я понимаю...
Но в конечном счете
последнее слово за заказчиком, просто вам нужно запастись бумажкой, где это все прописано ] +100500


заказчик - Препод
...))
...
Рейтинг: 0 / 0
Пол как сущность
    #38770503
WebSharper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorНе согласен. Пчёлы сейчас вымирают из-за губительного воздействия станций Wi-Fi

Умирание реалистично, защита менее реалистично, учет пола одиночной пчелы для защиты еще менее реалистично :)
...
Рейтинг: 0 / 0
Пол как сущность
    #38770531
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WebSharperdefragmentatorНе согласен. Пчёлы сейчас вымирают из-за губительного воздействия станций Wi-Fi

Умирание реалистично, защита менее реалистично, учет пола одиночной пчелы для защиты еще менее реалистично :)

Об этом пусть защитники думают :)
...
Рейтинг: 0 / 0
Пол как сущность
    #38770886
s u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurryлишний join - это не проблема для современных СУБД

не проблема, но и его можно избежать. Мы храним многие справочники в такой структуре

Код: plaintext
1.
2.
CODE_TX | DISPLAY_TX | DESCRIPTION_TX | ACTIVE_YN | VISIBLE_YN | ORDER_NR| PARENT_CODE_TX
M            Mужской       Мужской пол        Y           Y          1

Ваш ID это CODE_TX (М Ж итд) и все FKs остаются на своем месте... довольно часто достаточно показать (Мурзик | М) вместо (Мурзик | Мужской)
остальные поля используются для форм воода и редактирования (combobox например)
...
Рейтинг: 0 / 0
Пол как сущность
    #38771028
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurryПроблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле

Не нужно писать против ветра... ключевая фраза здесь - преподаватель настаивает ...
Добавьте еще типа: ах..., ну да..., ну да...., мы же используем логическое поле Да / Нет и получаем три значения:
- Да
- Нет
- Не знаю (Null)
И нет необходимости выносить это в отдельную таблицу... Согласна, пусть будет аналогично: он, она и оно
без лишних таблиц... рекомендую подиграть немного...
...
Рейтинг: 0 / 0
Пол как сущность
    #38771521
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurryЗдравствуйте. Проектирую учебную БД (для общества защиты животных). Я сделала пол отдельной таблицей (id и значение). Я знаю, что пол - это достаточно сложный вопрос (я была в Таиланде, например), но в рамках моей задачи я предполагаю упрощенную модель.


Да, вопрос сложный.
Пол животного ? Или пол человека ?
И для каких целей ?
Если человека, то какой пол ? Физический (медицинский), сексопатологический, гражданский ... и т.п.


lemurry Проблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний join.


Это однозначно бредовый критерий. Тем более очень плохо слышать это от преподавателя.
JOIN -- одна из самых лёгких операций в СУБД, она практически ничего не стоит. Поэтому экономить тут нечего.

lemurryМоя интуиция подсказывает, что таблица - это удобно и естественно, а лишний join - это не проблема для современных СУБД. Подскажите пожалуйста, есть ли какие-нибудь преимущества в способе с битовым полем? Заранее спасибо.


Преимущества -- проще запрос, казалось бы, но если при наличии справочника пола тебе придётся сделать JOIN и вместо ID пола
поставить его наименование, то в запросе без справочника нужно будет писать CASE-выражение для подстановки вместо идентификатора пола его показываемого пользователю значения. И это надо будет делать во всех запросах (правда, можно соорудить view).

Но, ещё раз, в принципе вопрос "домен vs справочник" очень сложный и он не имеет общего решения, его всегда нужно рассматривать в контексте конкретной задачи и его требований.

И с другой стороны -- справочник (отдельная таблица) -- решение универсальное, и приняв этот подход невозможно ошибиться.
Напротив, если поле сделать доменом, то при расширении списка значений домена придётся переделывать всю таблицу, в больших БД это очень сложная операция.

Кстати, есть промежуточное решение, которое сочетает достоинства двух -- делать справочник, но идентификаторы справочника делать с "говорящими" значениями, в данном случае 'M' и 'F' и возможно что-то ещё. Так можно сочетать и тот и другой подходы, и если это запрос не для пользователя -- не делать JOIN (хотя это и не страшно для СУБД, писать лишнее конечно же неудобно).
...
Рейтинг: 0 / 0
Пол как сущность
    #38771529
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorMSSQLAndDotNetа почему битовое?
он - она - оно
1 - 0 - null
?
Если заказчик хочет биты, пусть будут биты

Не, извините.
null -- это не значение, это отсутсвие значения.
Нельзя что-то кодировать NULL-ом, это грубая ошибка проектирования.
...
Рейтинг: 0 / 0
Пол как сущность
    #38772192
Dmitry V. Liseev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня была коллега, которая при проектировании систем пол всегда кодировала битовым полем. Причём женский=true, мужской=false. А я всегда делал наоборот. У нас были постоянные споры на тему должен быть стульчак всегда опущен или всегда поднят.
...
Рейтинг: 0 / 0
Пол как сущность
    #38772211
SERG1257
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот поэтому битовое поле надо оформлять как ответ на вопрос типа is_deleted, is_female, и т.п.
...
Рейтинг: 0 / 0
Пол как сущность
    #38772303
1001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry V. LiseevУ меня была коллега,
которая при проектировании систем пол всегда кодировала
битовым полем. Причём женский=true, мужской=false.
А я всегда делал наоборот. У нас были постоянные споры на тему должен быть стульчак всегда опущен или всегда поднят.

а она хоть - красивенькая

((



я с детства не любил - Овал....
...
Рейтинг: 0 / 0
Пол как сущность
    #38772309
Сексист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SERG1257is_female, и т.п.is_male! И стульчак поднят!
А вот тп - уже излишне!
...
Рейтинг: 0 / 0
Пол как сущность
    #38772967
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s ulemurryлишний join - это не проблема для современных СУБД

не проблема, но и его можно избежать. Мы храним многие справочники в такой структуре

Код: plaintext
1.
2.
CODE_TX | DISPLAY_TX | DESCRIPTION_TX | ACTIVE_YN | VISIBLE_YN | ORDER_NR| PARENT_CODE_TX
M            Mужской       Мужской пол        Y           Y          1

Ваш ID это CODE_TX (М Ж итд) и все FKs остаются на своем месте... довольно часто достаточно показать (Мурзик | М) вместо (Мурзик | Мужской)
остальные поля используются для форм воода и редактирования (combobox например)

Короткие справочники можно хранить в табличных переменных, если это MS SQL.
Вопрос быстроты, скорее, в тот форум.
Я думаю, сам сиквел поместит всю такую короткую таблицу в память при первом же к ней обращении.
Подробнее можно узнать в соответствующем разделе форума.
...
Рейтинг: 0 / 0
Пол как сущность
    #38773100
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorКороткие справочники можно хранить в табличных переменных, если это MS SQL. Это как? В каждой процедуре и в каждом пакете начитывать справочник в переменную?
И какой смысл? defragmentatorЯ думаю, сам сиквел поместит всю такую короткую таблицу в память при первом же к ней обращении. Вот именно. Поместит страницу с данными таблицы в кэш и все. Без всяких переменных.defragmentatorПодробнее можно узнать в соответствующем разделе форума. Можно. Но лучше, сначала документацию почитать. Особенно про область видимости.
...
Рейтинг: 0 / 0
Пол как сущность
    #38773233
dvim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
lemurry,
С точки зрения практики, преподаватель прав.
Мы не в Тайланде и у нас пол может иметь значения М/Ж/Неизвестно.
(Бесполые существа кодируются как Ж ).

Ваше решение будет разумным при работе по насекомым, типа пчел и муравьев.
Но - если система для этого не предназначена, это усложнение просто излишне.
...
Рейтинг: 0 / 0
Пол как сущность
    #38773247
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dvimМы не в Тайланде....
В то время, как экономика страны переживает тяжелые времена, Вы сознательно предлагаете ограничить возможный экспортный потенциал на развивающиеся юго-восточных рынках сбыта для Российских разработчиков

Вредительство детектед.
...
Рейтинг: 0 / 0
Пол как сущность
    #38773608
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsdefragmentatorКороткие справочники можно хранить в табличных переменных, если это MS SQL. Это как? В каждой процедуре и в каждом пакете начитывать справочник в переменную?
И какой смысл? defragmentatorЯ думаю, сам сиквел поместит всю такую короткую таблицу в память при первом же к ней обращении. Вот именно. Поместит страницу с данными таблицы в кэш и все. Без всяких переменных.defragmentatorПодробнее можно узнать в соответствующем разделе форума. Можно. Но лучше, сначала документацию почитать. Особенно про область видимости.

И что там Вы особенного про область видимости нашли ?
И почему в каждой процедуре плохо читать, особенно если это большая процедура?
Обычное использование встроенных в язык вещей.
...
Рейтинг: 0 / 0
Пол как сущность
    #38777715
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorbaracsпропущено...
Это как? В каждой процедуре и в каждом пакете начитывать справочник в переменную?
И какой смысл? пропущено...
Вот именно. Поместит страницу с данными таблицы в кэш и все. Без всяких переменных.пропущено...
Можно. Но лучше, сначала документацию почитать. Особенно про область видимости.
И что там Вы особенного про область видимости нашли ? Особенного - ничего. Табличная переменная видна только в том модуле (процедуре, функции, пакете), в котором создана. Все. defragmentatorИ почему в каждой процедуре плохо читать, особенно если это большая процедура? Потому что надо создавать переменную и заполнять ее данными, вместо того, чтобы просто обратиться к таблице.
И какое значение имеет размер процедуры?

Вы так и не ответили на вопрос: "В чем смысл сего действа?". defragmentatorОбычное использование встроенных в язык вещей. По-моему, весьма витиеватое использование.
...
Рейтинг: 0 / 0
Пол как сущность
    #38777739
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsdefragmentatorпропущено...

И что там Вы особенного про область видимости нашли ? Особенного - ничего. Табличная переменная видна только в том модуле (процедуре, функции, пакете), в котором создана. Все. defragmentatorИ почему в каждой процедуре плохо читать, особенно если это большая процедура? Потому что надо создавать переменную и заполнять ее данными, вместо того, чтобы просто обратиться к таблице.
И какое значение имеет размер процедуры?

Вы так и не ответили на вопрос: "В чем смысл сего действа?". defragmentatorОбычное использование встроенных в язык вещей. По-моему, весьма витиеватое использование.
Обычный троллинг
...
Рейтинг: 0 / 0
Пол как сущность
    #38777834
baracs
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defragmentatorbaracsпропущено...
Особенного - ничего. Табличная переменная видна только в том модуле (процедуре, функции, пакете), в котором создана. Все. пропущено...
Потому что надо создавать переменную и заполнять ее данными, вместо того, чтобы просто обратиться к таблице.
И какое значение имеет размер процедуры?

Вы так и не ответили на вопрос: "В чем смысл сего действа?". пропущено...
По-моему, весьма витиеватое использование.
Обычный троллинг Да, я забыл что имею дело с ПТ-шником и повелся.
...
Рейтинг: 0 / 0
Пол как сущность
    #38777909
Фотография defragmentator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
baracsdefragmentatorпропущено...

Обычный троллинг Да, я забыл что имею дело с ПТ-шником и повелся.
...
Рейтинг: 0 / 0
Пол как сущность
    #38777965
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не спорь с преподавателем - преподаватель всегда прав, т.к. именно он ставит зачет)
Нормальные люди пишут VARCHAR2(1) и не мучаются.
...
Рейтинг: 0 / 0
Пол как сущность
    #38778712
Alario
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда речь идет о преподавателях и базах для получения зачета или усвоения материала, то частенько делают не как по уму надо, а как в данный момент преподается. То есть "никогда так не делайте конечно, но в данный момент для усвоения материала раздела 4 мы сделаем именно так".
Сделайте как он говорит, но возьмите на заметку себе в будущем, вот и все.
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Пол как сущность
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]