Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.041 c
2-1163625563
framez
2006-11-16 00:19
2006.12.03
Считывание данных


3-1159353030
Anto}{a
2006-09-27 14:30
2006.12.03
запись в ячейки EditDBEdit


2-1163530347
Youngkoder
2006-11-14 21:52
2006.12.03
ini файлы


4-1153743219
Сан Саныч
2006-07-24 16:13
2006.12.03
Как получить ID харда? Не серийник, а ID!


2-1163158882
koha
2006-11-10 14:41
2006.12.03
Требуется ваше мнение: Что мешает программе запуститься?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский