Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

null или нуль? [IB6.x, FB]


_Ламер_ ©   (2006-11-10 21:53:00) 

Народ, здаров.

Есть таблица, в этой таблице есть поле (а как иначе))?). Это поле связано FK с полем из другой таблицы. Вопрос в чём. Если не надо ссылаться на вторую таблицу, то каким значением таблицу заполнять - null или нулём? Если второй случай, тогда его можно определить как not null (в моём случае не актуально - юзер доступа к этому полю не имеет). Но тогда во второй таблице придётся создавать запись со значением "0", причём до создания генератора.

Честно говоря не знаю, как поступить.


_Ламер_   (2006-11-11 15:36:00) [1]

Сэнкс
Целую


Desdechado   (2006-11-10 22:54:00) [2]

Я предпочитаю не делать внешних ключей с нуллами. Лучше уж завести запись по умолчанию в справочнике. Она не обязана иметь код 0, это может быть любое понятное значение. У меня обычно единица. Она же триггерами заблокирована от изменения и удаления.
А почему я не люблю ключи с null, так это потому, что NULL-значения не индексируются. И поэтому, когда тебе нужно будет найти (а это часто) Null'ы в поле, то придется писать проверку IS NULL, а она не использует индексы, т.е. приводит к полному перебору записей в таблице. А оно надо? Особенно, если таблицы не на 100 записей, а на 100 миллионов...


_Ламер_   (2006-11-10 22:51:00) [3]

Не, папка не физическая, а виртуальная. У неё, кроме как названия и атрибута, что она папка - ничего и нет.

Кстати, чем директория отличается от папки?


Petr V. Abramov   (2006-11-10 22:40:00) [4]

> Если второй случай, тогда его можно определить как not null
 второй случай не так плох, т.к. избавляет от outer join, который оптимизатору - серп по работе. В случае мелких справочиников в большом их количестве - пофиг почти


KilkennyCat   (2006-11-10 22:31:00) [5]

у папки тоже есть конкретные значения, не меньше, чем у файла. Объединяешь и добавляешь поле флага, папка или файл.


_Ламер_   (2006-11-10 22:21:00) [6]

Ну как Вам сказать. Первая таблица - это дерево папок. Если узел не папка, то это ссылка на вторую таблицу с конкретными значениями. Можно, конечно, их объединить, но тогда получится куча незаполненных полей в случае, если запись является папкой. Такие вот пироги.


unknown   (2006-11-10 22:11:00) [7]


> Kolan ©   (10.11.06 21:56) [1]
> Зачем тогда связь в таблицах?

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


unknown   (2006-11-10 22:08:00) [8]

Зависит от задачи. Насколько я понял проблему - нет жесткой зависимости
таблиц, так что null предпочтительней.


Kolan   (2006-11-10 21:56:00) [9]

Я в базах - <твой ник>, но ИМХО тут что-то нето. Как это ненадо ссылаться? Зачем тогда связь в таблицах? Зачем сохранять данные?


Наверх

Титульная страница Поиск, карта сайта Написать письмо