Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

null или нуль?   Найти похожие ветки 

 
_Ламер_   (2006-11-10 21:53) [0]

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

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

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


 
Kolan ©   (2006-11-10 21:56) [1]

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


 
unknown ©   (2006-11-10 22:08) [2]

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


 
unknown ©   (2006-11-10 22:11) [3]


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

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


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

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


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

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


 
Petr V. Abramov ©   (2006-11-10 22:40) [6]

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


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

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

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


 
Desdechado ©   (2006-11-10 22:54) [8]

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


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

Сэнкс
Целую



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.075 c
15-1163348628
Михель
2006-11-12 19:23
2006.12.03
Не могу починить DMClient, заглючил и не лечится...


2-1163686957
KyRo
2006-11-16 17:22
2006.12.03
Не сробатывает событие таймера !


3-1159773144
Megabyte
2006-10-02 11:12
2006.12.03
Выборка списка пользователей из rdb$user_privileges


3-1159722493
bugorik
2006-10-01 21:08
2006.12.03
Выборка SELECT по вхождению данных


15-1163158307
Андрей ББББ
2006-11-10 14:31
2006.12.03
проблемы с Windows XP