Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
27 понуро бредущих кроликов IMHO, FK существует отчасти именно для того, чтобы не допускать неопределенных родительских записей... нуда, нуда... Ну дак, известно же что ИМХО=={Имею Мнение -Хй Оспоришь} Для чего кстати конструкции FK (или релейшена): ...ON DELETE SET NULL ? Есть разные потребности моделирования. Под них -разные _вариации_ ссылочной целостности. И если существует вариант для "пуристов", то наличие вариантов, не позволяющих иметь несуществующих предков, но позволяющих - неопределенного - очевидно вполне восстребован (уж если производители СУБД внесли его в реализуемые вар-ты). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 10:29 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
[quot 4321нуда, нуда... Ну дак, известно же что ИМХО=={Имею Мнение -Хй Оспоришь} [/quot] IMHO != ИМХО :-)) IMHO = "я ТАК думаю (с) Мимино" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 11:09 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
В кадровсой программе возможны NULL Дата смерти Дата Увольнения Дата выхода на пенсию Имеющиеся правительственные награды Телефон И дофига других. Возможны, но необязательны. Например, если норамализовать далее (и зачастую это более правильно) до отдельных таблиц: Факты смерти Факты Увольнения Факты выхода на пенсию ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 12:47 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
Роман Дынник wrote: > Возможны, но необязательны. > Например, если норамализовать далее (и зачастую это более правильно) > до отдельных таблиц: > Факты смерти > Факты Увольнения > Факты выхода на пенсию угу.. и при добавлении, например "Факта удаления аппендицита" добавлять табличку... процедуру для обработки... интерфейса... вместо того чтобы добавить в табличку, скажем "разные факты" новой записи "Факт удаления аппендицита".... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 12:54 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
> Роман Дынник wrote: > > > Возможны, но необязательны. > > Например, если норамализовать далее (и зачастую это более правильно) > > до отдельных таблиц: > > Факты смерти > > Факты Увольнения > > Факты выхода на пенсию > угу.. и при добавлении, например "Факта удаления аппендицита" добавлять > табличку... процедуру для обработки... интерфейса... вместо того чтобы > добавить в табличку, скажем "разные факты" новой записи "Факт удаления > аппендицита".... > и кстати, а если мне понадобится например, жизнеописание чела? я что, должен буду писать Код: plaintext 1. 2. 3. 4. 5. Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 12:56 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
угу.. и при добавлении, например "Факта удаления аппендицита" добавлять табличку... процедуру для обработки... интерфейса... вместо того чтобы добавить в табличку, скажем "разные факты" новой записи "Факт удаления аппендицита".... Это уже дело CRUD-слоя раскладывать записи по табличкам, зачастую эту кажущуюся в данном случае сложно процедуру можно сгенерить автоматом на основнии модели данных. Интерфейс ничем не пострадает, надо просто вспомнить паттерн MVC Потом в данном случае повышается процент повторного использования кода, не во всех же разработках требуется хранить факт удаления аппендицита, но вот ФИО - везде, таким образом вы выделяете некое общее ядро для различных модулей, которое наращивается в соответствии с требованиями к системе. и кстати, а если мне понадобится например, жизнеописание чела? я что, должен буду писать select * from ФактРождения union all select * from ФактОбучения union all ....... select * from ФактСмерти order by date некошерно это как-то.... не union all, а обычный join если связь 1-к-1. Для сложных иерархических объектов - их можно вообще в xml возвращать, далее десериализовывать в бизнес-объект/компонент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 13:16 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
Роман Дынник wrote: > > Это уже дело CRUD-слоя раскладывать записи по табличкам, зачастую эту > кажущуюся в данном случае сложно процедуру можно сгенерить автоматом на > основнии модели данных. у-ху... т.е. процы генерятся... сами по себе... не проще ли заполнить справочник типов фактов? > Интерфейс ничем не пострадает, надо просто вспомнить паттерн MVC кто такой MVC - не знаю, подозреваю что Microsoft Visual C Если да, то что, при добавлении нового факта Вы предлагаете перекомпилить клиента? Или я неправильно понимаю? > Потом в данном случае повышается процент повторного использования кода, > не во всех же разработках требуется хранить факт удаления аппендицита, > но вот ФИО - везде, таким образом вы выделяете некое общее ядро для > различных модулей, которое наращивается в соответствии с требованиями к > системе. > Да, не везде нужен факт удаления аппендицита, и вот ежели факты хранить в одной таблице, то наличие или отсутсвие данного факта решительно ни на кого не повилияет. > не union all, а обычный join если связь 1-к-1. > Для сложных иерархических объектов - их можно вообще в xml возвращать, > далее десериализовывать в бизнес-объект/компонент. Откуда тут джойн? согласен, рождение-смерть - по одной штуке, а вот обучение/увольнение/женитьба/развод и прочая - дык их много будит.... и потом... история то вертикально обычно раскладывается, а Вы мне предлагаете - горизонтально? Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 13:37 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
locky у-ху... т.е. процы генерятся... сами по себе... не проще ли заполнить справочник типов фактов? По-разному бывает выгодно, когда заранее не известно кол-во фактов(атрибутов) или список атрибутов часто расширяются в процессе эксплуатации - тогда да, выгоднее справочник типов фактов, но в этом случае сложнее будет писать запросы поиска по этим трибутам. кто такой MVC - не знаю, подозреваю что Microsoft Visual C Если да, то что, при добавлении нового факта Вы предлагаете перекомпилить клиента? Или я неправильно понимаю? MVC - это Model View Controller - другими словами отделение данных и управления ими от презентационного уровня (интерфейса) По поводу же перекомпиляции... думаю вам известно что написание полностью тонко настраиваемого приложения на все случаи - это миф. Да, не везде нужен факт удаления аппендицита, и вот ежели факты хранить в одной таблице, то наличие или отсутсвие данного факта решительно ни на кого не повилияет. Если факты храняться в одной таблице - у вас будут NULL-ы - вообщем то это тема данного топика... другие доводы в пользу отделения я описал выше. Откуда тут джойн? согласен, рождение-смерть - по одной штуке, а вот обучение/увольнение/женитьба/развод и прочая - дык их много будит.... и потом... история то вертикально обычно раскладывается, а Вы мне предлагаете - горизонтально? структура хранения истории бизнес-объекта определяется на этапе проектирования. т.е. например вы определяете что добавлять в историю при изменении объекта: весь список 1-к-n либо хранить историю для каждой изменяемой записи списка. В общем случае для истории делается поностью дублирующая структура с дополнительными полями типа дата создания/изменения. И потом, как в вы предлагаете хранить обучение/увольнение/женитьба/развод в одной таблице? нет, ну можно конечно в xml например, но... очень сомнительное решение. И по поводу join-а при 1-к-n , в mssql ,например, вы можете сделать for xml запрос который и вернет вам всю иерархию бизнес объекта в виде xml. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 14:45 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
> По-разному бывает выгодно, когда заранее не известно кол-во > фактов(атрибутов) или список атрибутов часто расширяются в процессе > эксплуатации - тогда да, выгоднее справочник типов фактов, но в этом > случае сложнее будет писать запросы поиска по этим трибутам. Чем есть сложно? написать запрос вида Код: plaintext 1. > MVC - это Model View Controller - другими словами отделение данных и > управления ими от презентационного уровня (интерфейса) > По поводу же перекомпиляции... думаю вам известно что написание > полностью тонко настраиваемого приложения на все случаи - это миф. Ну, совсем тооонко настраиваемое - да, миф... а вот подходящее в 90-95% случаев.... непросто, но возможно... десятка 3 пиплов с местной тусовки такое делало (я в том числе) > Если факты храняться в одной таблице - у вас будут NULL-ы - вообщем то > это тема данного топика... > другие доводы в пользу отделения я описал выше. Откель наллы, милейший? нету факта женитьбы - нету записи в табличке фактов, и всего делов.... > > структура хранения истории бизнес-объекта определяется на этапе > проектирования. т.е. например вы определяете что добавлять в историю при > изменении объекта: весь список 1-к-n либо хранить историю для каждой > изменяемой записи списка. В общем случае для истории делается поностью > дублирующая структура с дополнительными полями типа дата создания/изменения. > И потом, как в вы предлагаете хранить > обучение/увольнение/женитьба/развод в одной таблице? нет, ну можно > конечно в xml например, но... очень сомнительное решение. Не поняль, о чем йето мы.. но ! Дался всем этот XML, сил моих нету, лепят куды надоть и не надоть... Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.08.2005, 18:46 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
дорогой locky, видимо мы с вами разговариваем на разных языках по-этому попытаюсь подвести некое резюме. Тема NULL-ов уже неоднократно обсуждалась и здесь и на аналогичных ресурсах, и уже давно переросла в разряд идеалогических войн. NULL или не NULL - вопрос философский, теоритически - без NULL правильнее (в литературе обычно встречаются утверждения что присутствие NULL обычно свидетельствует о потенциальной ошибке проектирования), практически же мало кто доводит систему до такой степени декомпозиции (по лени ли, из удобства или по каким-либо еще причинам) и в практике обычно использование NULL не является большим грехом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2005, 16:35 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
KiteГде-то встречала выражение, что хорошо спроектированная БД не должна содержать большого количества NULL значений. Верно ли это утверждение и если верно, то где найти обоснование, что почитать? В общем, верно. Но это не значит, что если у тебя много NULL-полей, то база спроектирована плохо. Kite И может поделитесь рассуждениями и наблюдениями из опыта, насколько мешают NULL значения при эксплуатации БД. Из опыта - да никак они не мешают. На самом деле NULL-ы зачем нужны ? Без них тебе нужно было бы вынести все необязательные поля в отдельную таблицу, в пределе - каждое поле в свою, но можно выделить зависимые поля совместно, эти таблицы должны относиться к главной как один-к-ноль_или_один, это усложняет дизайн (ненужные лишние сущности могут появляются, высосанные из пальца), усложняет запросы (join-ить -то надо). Так что NULL-ы - очень полезная вещь. Другое дело, что используя их можно, например, запихать две сущности в одну таблицу , а это - не правильно, ну и все такое прочее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 03:26 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
LSVчтоб в запросах проверок на НУЛЛ было поменьше, т.к. в этом случае сервера работают неоптимально. Не правда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 03:26 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
KiteСпасибо всем за высказанные мнения. А как ведут себя индексы, построенные по полям, содержащим множество значений NULL? Нормально себя ведут. Как и все другие индексы. Для индекса NULL- просто еще одно значение. Правда, не для всех серверов это верно, у Оракла например, как я знаю, на этот счет мнение не совсем обычное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 03:29 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
Cat2Kite. Не обращайте внимания. сколько Вам нужно NULL, столько и делайте. В кадровсой программе возможны NULL Дата смерти Дата Увольнения Дата выхода на пенсию Имеющиеся правительственные награды Телефон И дофига других. А вот именно эти поля уже под NULL-ом выглядят как дизайн сомнительного качества. Смерти, увольнения и выходы входы можно было бы сделать отдельной таблицей, типа "события в жизни". Телефоны - сам бог повелел в отдельную таблицу, тем более что уже даже во всех мобильных телефонах их для одного товарища принято заводить несколько, а не один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 03:33 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
MasterZiv Смерти , ... можно было бы сделать отдельной таблицей, типа "события в жизни". Телефоны - сам бог повелел в отдельную таблицу, тем более что уже даже во всех мобильных телефонах их для одного товарища принято заводить несколько, а не один. аха-аха "дайте две" (И отмечать там все клинические смерти пёрсына, покеда окончательно не сдуецца). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 11:14 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
4321 wrote: > MasterZiv > *Смерти*, ... можно было бы сделать отдельной таблицей, типа "события в > жизни". Телефоны - сам бог повелел в отдельную таблицу, тем более что > уже даже во всех мобильных телефонах их для одного товарища принято > заводить несколько, а не один. > > > > аха-аха "дайте две" (И отмечать там все клинические смерти пёрсына, > покеда окончательно не сдуецца). > да не, смерть она одна в жизни бывает (политики, правда, скажут, что есть еще политическая смерть). просто хранить одни события тута, а другие - тама - некошерно, запашештся потом выбирать... -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2005, 11:21 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
Я имел в виду не только для смерти эту таблицу использовать, но и вообще для всех событий в жизни. Там в таблице много было дат, могли бы и догадаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 00:26 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
MasterZivЯ имел в виду не только для смерти эту таблицу использовать, но и вообще для всех событий в жизни. Там в таблице много было дат, могли бы и догадаться. Вот тут есть некий момент, который в данном случае не слишком явен, но все ж таки... А именно, "реальный мир" устроен таким образом, что некое значение является в нем членом множества отношений (естественно я уже перешел с реальности на некую "логическую модель", говоря об отношениях). И существует множество способов расположить эти значения в неких табличных структурах (все остальные отношения получая с помощью выборок по связанным таблицам). Для БД похоронного бюро например отношение "событие жизни" неактуально. Там актуальны только "клиенты" с 2-я заведомо единственными "событиями" - рождением и смертью. Добавлять пару ключей, плюс тип, для ухода от NULL в этом случае мяхко говоря нерационально. И вообще говоря выделять заведомо однократные события (или некие другие заведомо единичные аттрибуты) в некое "однородно" образование типа "сущности "события жизни"" видимо уместно только там, где эти "события" (аттрибуты) интересуют пользователя именно в виде таковой "однородной" в смысле "организующей сущности" выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 11:06 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
4321 wrote: > MasterZiv > Я имел в виду не только для смерти эту таблицу использовать, но и вообще > для всех событий в жизни. Там в таблице много было дат, могли бы и > догадаться. > > > Вот тут есть некий момент, который в данном случае не слишком явен, но > все ж таки... > А именно, "реальный мир" устроен таким образом, что некое значение > является в нем членом множества отношений (естественно я уже перешел с > реальности на некую "логическую модель", говоря об отношениях). И > существует множество способов расположить эти значения в неких табличных > структурах (все остальные отношения получая с помощью выборок по > связанным таблицам). Для БД похоронного бюро например отношение "событие > жизни" неактуально. Там актуальны только "клиенты" с 2-я заведомо > единственными "событиями" - рождением и смертью. Добавлять пару ключей, > плюс тип, для ухода от NULL в этом случае мяхко говоря нерационально. И > вообще говоря выделять заведомо однократные события (или некие другие > заведомо единичные аттрибуты) в некое "однородно" образование типа > "сущности "события жизни"" видимо уместно только там, где эти "события" > (аттрибуты) интересуют пользователя именно в виде таковой "однородной" в > смысле "организующей сущности" выборки. Кстати, клиентами похоронных бюро являются не покойники, а родственники, а для них актуальны такие даты как "Дата обращения", "дата захоронения", "дата оплаты заказа" и т.д.... -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 11:28 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
MasterZiv LSVчтоб в запросах проверок на НУЛЛ было поменьше, т.к. в этом случае сервера работают неоптимально. Не правда. Для Оракла это правда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 11:30 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
вообще когда связь между сущностями 1:1, и есть желание иметь хорошую производительность - лучше делать все в одной таблице. Многие базы умею сжимать записи с дефолтными и НУЛЛ значениями. Ввод/Вывод получается меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 11:33 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
lockyКстати, клиентами похоронных бюро являются не покойники, а родственники, а для них актуальны такие даты как "Дата обращения", "дата захоронения", "дата оплаты заказа" и т.д.... хммм. Ну этто клиенты несколько другого сорта. Тут вопрос даже не о словах, а об уважении к .... "объектам учета". Давайте таки назовем их как-то иначе, чем "объекты ...". А хотя бы как и "Клиенты", а сродственники перетопчуца - пусть к примеру будут "Контрагентами". И тогда вашу ремарку следует видимо понимать так: "бабло рубят с родственников, и фиксируют их обращения". Но это не причина вести учет "Клиентов" в смысле обслуживаемых боди совместно с учетом "Клиентов" в смысле опустошаемых карманофф. Не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 11:39 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
gardenman MasterZiv LSVчтоб в запросах проверок на НУЛЛ было поменьше, т.к. в этом случае сервера работают неоптимально. Не правда. Для Оракла это правда. Это - личная проблема вашего оракла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 12:10 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
4321 wrote: > хммм. Ну этто клиенты несколько другого сорта. Тут вопрос даже не о > словах, а об уважении к .... "объектам учета". Давайте таки назовем их > как-то иначе, чем "объекты ...". А хотя бы как и "Клиенты", а > сродственники перетопчуца - пусть к примеру будут "Контрагентами". И > тогда вашу ремарку следует видимо понимать так: "бабло рубят с > родственников, и фиксируют их обращения". Но это не причина вести учет > "Клиентов" в смысле обслуживаемых боди совместно с учетом "Клиентов" в > смысле опустошаемых карманофф. Не так ли? Так, раз уж такая пьянка... "Боди" - это всего-лишь ммм... сырье для предоставления услуги тем самым родственникам, которые и являются клиентами, а даты жизни и смерти - всего один из параметров, написанный в приходной накладной. Вы когда кота ведете кастрировать - кого в книгу регистрации пишут? "Кот Васька осьмнадцати лет" или всё-таки "Иванов Петр Васильевич, услуга - кастрация ейного кота Васьки"? -- ------------------------- There's no silver bullet! Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 12:21 |
|
||
|
Подскажите насчет NULLов в базе
|
|||
|---|---|---|---|
|
#18+
locky"Боди" - это всего-лишь ммм... сырье для предоставления ачём споришь, балезный? Если о: locky кого в книгу регистрации пишут? "Кот Васька осьмнадцати лет" или всё-таки "Иванов Петр Васильевич, услуга - кастрация ейного кота Васьки"?то там пишуть и хто, и кого. В разные графы токо. Если быть точным, то меня интересовал вопрос, нужно ли к боди рисовать отдельную таблицу фактов жизни, когда оно выступает only like a body. Именно на способности неких атрибутов выступать в разном качестве я и говорил. И ничего более. Т.ч. мнение, что "факк-ты" есмь у неких других боди тут как бы показывает отсутствие гляделок или понималки у третьей разновидности боди. "а он всегда был спорщиком припрут к стене - откажеца прошёл он корридорчиком и кончил (стенкой, кажеца)" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2005, 13:18 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33211859&tid=1545724]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
2ms |
| others: | 217ms |
| total: | 312ms |

| 0 / 0 |
