|
|
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Проектирую учебную БД (для общества защиты животных). Я сделала пол отдельной таблицей (id и значение). Я знаю, что пол - это достаточно сложный вопрос (я была в Таиланде, например), но в рамках моей задачи я предполагаю упрощенную модель. Проблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний join. Моя интуиция подсказывает, что таблица - это удобно и естественно, а лишний join - это не проблема для современных СУБД. Подскажите пожалуйста, есть ли какие-нибудь преимущества в способе с битовым полем? Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 23:34 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurry Проблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний joinНе спорьте с преподавателем, даже если он не прав lemurry Моя интуиция подсказывает, что таблица - это удобно и естественно, а лишний join - это не проблема для современных СУБД.Я с вами согласен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 23:39 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurryПроектирую учебную БД (для общества защиты животных). А зачем в БД ОЗЗ вообще хранить пол? По-моему, это совершенно избыточная персональная информация. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 23:46 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovlemurryПроектирую учебную БД (для общества защиты животных). А зачем в БД ОЗЗ вообще хранить пол? По-моему, это совершенно избыточная персональная информация. Имеется в виду пол животного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 23:48 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
В вашу сторону скажу только что, если пол хранится как таблица Sex(ID,Name), то представление его на клиенте ложится на эту таблицу. Если же просто хранить как бит/число, то клиент должен сам обработать эти данные в строку. Несложно, но не забыть правильно. К тому же могут быть расширения: пол в женском роде- мужская, женская, на английском- male, female. Удобнее хранить в таблице. Но необязательно)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2014, 23:57 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurryИмеется в виду пол животного. А при чём тут тогда сложности и Тайланд? Нынче животным проводят операции смены пола?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 00:02 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovlemurryИмеется в виду пол животного. А при чём тут тогда сложности и Тайланд? Нынче животным проводят операции смены пола?.. Это была просто шутэчка... Таиланд здесь действительно не при чем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 00:06 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovlemurryИмеется в виду пол животного. А при чём тут тогда сложности и Тайланд? Нынче животным проводят операции смены пола?.. некоторые животные умеют менять пол самостоятельно )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 00:11 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
самостоятельно это не правильно, пусть по шедюлеру меняют ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 00:50 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
> пол - это достаточно сложный вопрос Для людей всё просто: пол при рождении, пол, соответствующий регистрации гражданина как резидента, репродуктивные аспекты, социальные аспекты. У животных социальных аспектов, видимо, нет, и формальная регистрация пола - не норма. > я предполагаю упрощенную модель Упрощенная модель - пол + факт стерилизации. Т. е. таблица плюс битовое поле. > мой преподаватель настаивает Несмотря на то, что ваш препод гонит, вам, видимо, придётся сделать так, как он требует. Но для себя отметьте, что, например, та же мультиязычность для таблицы - в отличие от битового поля - простая операция. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 01:22 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurry, проблема, как я понимаю, в отсутствии точно сформулированного ТЗ. Если заказчик, в данном случае препод, не четко сформулировал требование к возможным значениям некого параметра, в данном случае пола, то надо задать наводящий вопрос и уточнить. Если в ТЗ четко прописано, что вариантов 2 и увеличения не будет - делаем битовое поле и не паримся. Если хотите показать въедливость и неравнодушие к задаче - то можно намекнуть, что кроме М и Ж есть всякие рыбы и земноводные, которые являются естественными гермафродитами, то есть на самом деле вариантов может быть более 2. Но в конечном счете последнее слово за заказчиком, просто вам нужно запастись бумажкой, где это все прописано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 09:43 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
а почему битовое? он - она - оно 1 - 0 - null ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 10:33 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
MSSQLAndDotNetа почему битовое? он - она - оно 1 - 0 - null ? Если заказчик хочет биты, пусть будут биты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 10:41 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
>убрала таблицу и использовала битовое поле пусть твой безграмотный препод откроет школьную программу по биологии у животных полов больше 2-х есть и двуполые и бесполые есть вообще виды состоящие только из самок кроме того один и тот же пол может иметь разную зиготность например у свиней самка монозигота, самец - гетерозигота, а у куриц наоборот или скажем какой пол у рабочей пчелы? по факту женский, но не станете же вы отрицать, что она отличается от матки по половому признаку... и это научные факты исходить надо из предметной области, а не из штампов в голове препода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 10:45 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Локкиlemurry, проблема, как я понимаю, в отсутствии точно сформулированного ТЗ. Если заказчик, в данном случае препод, не четко сформулировал требование к возможным значениям некого параметра, в данном случае пола, то надо задать наводящий вопрос и уточнить. Если в ТЗ четко прописано, что вариантов 2 и увеличения не будет - делаем битовое поле и не паримся. Если хотите показать въедливость и неравнодушие к задаче - то можно намекнуть, что кроме М и Ж есть всякие рыбы и земноводные, которые являются естественными гермафродитами, то есть на самом деле вариантов может быть более 2. Но в конечном счете последнее слово за заказчиком, просто вам нужно запастись бумажкой, где это все прописано. +100500 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 11:09 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Chippollino.01или скажем какой пол у рабочей пчелы? Надо начать с требований: границ проекта и сценариев работы. Какие виды животных будет учитывать общество защиты? Как оно собирается использовать поле "пол" и для каких целей? Например, защита одиночной рабочей пчелы мне не представляется реалистичной :) Насколько легко будет преобразовать базу, если понадобится более двух полов? В конце концов, судя по тому, что есть учебная задача, общество существует только внутри головы препода. Если оно рассматривает только 2 пола, соответственно надо их реализовать, когда понадобится N тогда сконвертировать базу в новый формат. Но обычно в голове преподов общества живут недолго - не больше семестра и не успевают освоиться с новыми видами животных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 12:19 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
WebSharperChippollino.01или скажем какой пол у рабочей пчелы? Надо начать с требований: границ проекта и сценариев работы. Какие виды животных будет учитывать общество защиты? Как оно собирается использовать поле "пол" и для каких целей? Например, защита одиночной рабочей пчелы мне не представляется реалистичной :) Не согласен. Пчёлы сейчас вымирают из-за губительного воздействия станций Wi-Fi ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 14:09 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurryпреподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний joinлишний join - это не аргумент. Такое можно ляпнуть, только если больше сказать нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 14:15 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
baracsЛоккиlemurry, проблема, как я понимаю... Но в конечном счете последнее слово за заказчиком, просто вам нужно запастись бумажкой, где это все прописано ] +100500 заказчик - Препод ...)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 14:19 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
defragmentatorНе согласен. Пчёлы сейчас вымирают из-за губительного воздействия станций Wi-Fi Умирание реалистично, защита менее реалистично, учет пола одиночной пчелы для защиты еще менее реалистично :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 15:04 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
WebSharperdefragmentatorНе согласен. Пчёлы сейчас вымирают из-за губительного воздействия станций Wi-Fi Умирание реалистично, защита менее реалистично, учет пола одиночной пчелы для защиты еще менее реалистично :) Об этом пусть защитники думают :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 15:16 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurryлишний join - это не проблема для современных СУБД не проблема, но и его можно избежать. Мы храним многие справочники в такой структуре Код: plaintext 1. 2. Ваш ID это CODE_TX (М Ж итд) и все FKs остаются на своем месте... довольно часто достаточно показать (Мурзик | М) вместо (Мурзик | Мужской) остальные поля используются для форм воода и редактирования (combobox например) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 20:09 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurryПроблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле Не нужно писать против ветра... ключевая фраза здесь - преподаватель настаивает ... Добавьте еще типа: ах..., ну да..., ну да...., мы же используем логическое поле Да / Нет и получаем три значения: - Да - Нет - Не знаю (Null) И нет необходимости выносить это в отдельную таблицу... Согласна, пусть будет аналогично: он, она и оно без лишних таблиц... рекомендую подиграть немного... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2014, 23:29 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurryЗдравствуйте. Проектирую учебную БД (для общества защиты животных). Я сделала пол отдельной таблицей (id и значение). Я знаю, что пол - это достаточно сложный вопрос (я была в Таиланде, например), но в рамках моей задачи я предполагаю упрощенную модель. Да, вопрос сложный. Пол животного ? Или пол человека ? И для каких целей ? Если человека, то какой пол ? Физический (медицинский), сексопатологический, гражданский ... и т.п. lemurry Проблема в том, что мой преподаватель настаивает, чтобы я убрала таблицу и использовала битовое поле, так как это лишний join. Это однозначно бредовый критерий. Тем более очень плохо слышать это от преподавателя. JOIN -- одна из самых лёгких операций в СУБД, она практически ничего не стоит. Поэтому экономить тут нечего. lemurryМоя интуиция подсказывает, что таблица - это удобно и естественно, а лишний join - это не проблема для современных СУБД. Подскажите пожалуйста, есть ли какие-нибудь преимущества в способе с битовым полем? Заранее спасибо. Преимущества -- проще запрос, казалось бы, но если при наличии справочника пола тебе придётся сделать JOIN и вместо ID пола поставить его наименование, то в запросе без справочника нужно будет писать CASE-выражение для подстановки вместо идентификатора пола его показываемого пользователю значения. И это надо будет делать во всех запросах (правда, можно соорудить view). Но, ещё раз, в принципе вопрос "домен vs справочник" очень сложный и он не имеет общего решения, его всегда нужно рассматривать в контексте конкретной задачи и его требований. И с другой стороны -- справочник (отдельная таблица) -- решение универсальное, и приняв этот подход невозможно ошибиться. Напротив, если поле сделать доменом, то при расширении списка значений домена придётся переделывать всю таблицу, в больших БД это очень сложная операция. Кстати, есть промежуточное решение, которое сочетает достоинства двух -- делать справочник, но идентификаторы справочника делать с "говорящими" значениями, в данном случае 'M' и 'F' и возможно что-то ещё. Так можно сочетать и тот и другой подходы, и если это запрос не для пользователя -- не делать JOIN (хотя это и не страшно для СУБД, писать лишнее конечно же неудобно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 12:31 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
defragmentatorMSSQLAndDotNetа почему битовое? он - она - оно 1 - 0 - null ? Если заказчик хочет биты, пусть будут биты Не, извините. null -- это не значение, это отсутсвие значения. Нельзя что-то кодировать NULL-ом, это грубая ошибка проектирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 12:35 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
У меня была коллега, которая при проектировании систем пол всегда кодировала битовым полем. Причём женский=true, мужской=false. А я всегда делал наоборот. У нас были постоянные споры на тему должен быть стульчак всегда опущен или всегда поднят. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 18:00 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
вот поэтому битовое поле надо оформлять как ответ на вопрос типа is_deleted, is_female, и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 18:06 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Dmitry V. LiseevУ меня была коллега, которая при проектировании систем пол всегда кодировала битовым полем. Причём женский=true, мужской=false. А я всегда делал наоборот. У нас были постоянные споры на тему должен быть стульчак всегда опущен или всегда поднят. а она хоть - красивенькая (( я с детства не любил - Овал.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 19:29 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
SERG1257is_female, и т.п.is_male! И стульчак поднят! А вот тп - уже излишне! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2014, 19:39 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
s ulemurryлишний join - это не проблема для современных СУБД не проблема, но и его можно избежать. Мы храним многие справочники в такой структуре Код: plaintext 1. 2. Ваш ID это CODE_TX (М Ж итд) и все FKs остаются на своем месте... довольно часто достаточно показать (Мурзик | М) вместо (Мурзик | Мужской) остальные поля используются для форм воода и редактирования (combobox например) Короткие справочники можно хранить в табличных переменных, если это MS SQL. Вопрос быстроты, скорее, в тот форум. Я думаю, сам сиквел поместит всю такую короткую таблицу в память при первом же к ней обращении. Подробнее можно узнать в соответствующем разделе форума. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 12:13 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
defragmentatorКороткие справочники можно хранить в табличных переменных, если это MS SQL. Это как? В каждой процедуре и в каждом пакете начитывать справочник в переменную? И какой смысл? defragmentatorЯ думаю, сам сиквел поместит всю такую короткую таблицу в память при первом же к ней обращении. Вот именно. Поместит страницу с данными таблицы в кэш и все. Без всяких переменных.defragmentatorПодробнее можно узнать в соответствующем разделе форума. Можно. Но лучше, сначала документацию почитать. Особенно про область видимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 13:37 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
lemurry, С точки зрения практики, преподаватель прав. Мы не в Тайланде и у нас пол может иметь значения М/Ж/Неизвестно. (Бесполые существа кодируются как Ж ). Ваше решение будет разумным при работе по насекомым, типа пчел и муравьев. Но - если система для этого не предназначена, это усложнение просто излишне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 14:58 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
dvimМы не в Тайланде.... В то время, как экономика страны переживает тяжелые времена, Вы сознательно предлагаете ограничить возможный экспортный потенциал на развивающиеся юго-восточных рынках сбыта для Российских разработчиков Вредительство детектед. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 15:03 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
baracsdefragmentatorКороткие справочники можно хранить в табличных переменных, если это MS SQL. Это как? В каждой процедуре и в каждом пакете начитывать справочник в переменную? И какой смысл? defragmentatorЯ думаю, сам сиквел поместит всю такую короткую таблицу в память при первом же к ней обращении. Вот именно. Поместит страницу с данными таблицы в кэш и все. Без всяких переменных.defragmentatorПодробнее можно узнать в соответствующем разделе форума. Можно. Но лучше, сначала документацию почитать. Особенно про область видимости. И что там Вы особенного про область видимости нашли ? И почему в каждой процедуре плохо читать, особенно если это большая процедура? Обычное использование встроенных в язык вещей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2014, 17:41 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
defragmentatorbaracsпропущено... Это как? В каждой процедуре и в каждом пакете начитывать справочник в переменную? И какой смысл? пропущено... Вот именно. Поместит страницу с данными таблицы в кэш и все. Без всяких переменных.пропущено... Можно. Но лучше, сначала документацию почитать. Особенно про область видимости. И что там Вы особенного про область видимости нашли ? Особенного - ничего. Табличная переменная видна только в том модуле (процедуре, функции, пакете), в котором создана. Все. defragmentatorИ почему в каждой процедуре плохо читать, особенно если это большая процедура? Потому что надо создавать переменную и заполнять ее данными, вместо того, чтобы просто обратиться к таблице. И какое значение имеет размер процедуры? Вы так и не ответили на вопрос: "В чем смысл сего действа?". defragmentatorОбычное использование встроенных в язык вещей. По-моему, весьма витиеватое использование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 17:01 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
baracsdefragmentatorпропущено... И что там Вы особенного про область видимости нашли ? Особенного - ничего. Табличная переменная видна только в том модуле (процедуре, функции, пакете), в котором создана. Все. defragmentatorИ почему в каждой процедуре плохо читать, особенно если это большая процедура? Потому что надо создавать переменную и заполнять ее данными, вместо того, чтобы просто обратиться к таблице. И какое значение имеет размер процедуры? Вы так и не ответили на вопрос: "В чем смысл сего действа?". defragmentatorОбычное использование встроенных в язык вещей. По-моему, весьма витиеватое использование. Обычный троллинг ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 17:13 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
defragmentatorbaracsпропущено... Особенного - ничего. Табличная переменная видна только в том модуле (процедуре, функции, пакете), в котором создана. Все. пропущено... Потому что надо создавать переменную и заполнять ее данными, вместо того, чтобы просто обратиться к таблице. И какое значение имеет размер процедуры? Вы так и не ответили на вопрос: "В чем смысл сего действа?". пропущено... По-моему, весьма витиеватое использование. Обычный троллинг Да, я забыл что имею дело с ПТ-шником и повелся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 18:06 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
baracsdefragmentatorпропущено... Обычный троллинг Да, я забыл что имею дело с ПТ-шником и повелся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 19:10 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Не спорь с преподавателем - преподаватель всегда прав, т.к. именно он ставит зачет) Нормальные люди пишут VARCHAR2(1) и не мучаются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.10.2014, 20:49 |
|
||
|
Пол как сущность
|
|||
|---|---|---|---|
|
#18+
Когда речь идет о преподавателях и базах для получения зачета или усвоения материала, то частенько делают не как по уму надо, а как в данный момент преподается. То есть "никогда так не делайте конечно, но в данный момент для усвоения материала раздела 4 мы сделаем именно так". Сделайте как он говорит, но возьмите на заметку себе в будущем, вот и все. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2014, 14:55 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1540768]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
194ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
81ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 339ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...