Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Что за ссылочная целостность такая? / 23 сообщений из 23, страница 1 из 1
26.07.2004, 09:25:08
    #32620578
Александр 200230
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Народ, почему я (см. Attachment) могу свободно записать в подчиненную таблицу запись со значением внешнего ключа Null? Ведь такого значения нет в родительской таблице, и свойства объединения (см. схему данных) вроде верные... В чем прикол?

Александр.
...
Рейтинг: 0 / 0
26.07.2004, 09:46:49
    #32620617
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Очевидно что null не проверяется.
И никакого прикола здесь нет
Поля надо делать обязательными - если они должны быть обязательными. А не перекладывать проверку наличия значения на внешний ключ.
...
Рейтинг: 0 / 0
26.07.2004, 09:54:23
    #32620628
Александр 200230
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Это что - и в других базах так, или только в Access? А как же "объединять только те записи, в которых значение поля такого-то совпадает..." ? Это что, Access считает, что Null совпадает с не Null? Т.е. (Null=1)=True?
...
Рейтинг: 0 / 0
26.07.2004, 09:58:53
    #32620631
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
А как же "объединять только те записи, в которых значение поля такого-то совпадает..." ? Это что, Access считает, что Null совпадает с не Null? Т.е. (Null=1)=True?
А что, у вас запрос на объединение умудрился объединить запись с Null'ом и запись со значением "1" в полях связи? Не рассказывайте сказки.
...
Рейтинг: 0 / 0
26.07.2004, 10:16:19
    #32620665
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Александр 200230Это что - и в других базах так, или только в Access? А как же "объединять только те записи, в которых значение поля такого-то совпадает..." ? Это что, Access считает, что Null совпадает с не Null? Т.е. (Null=1)=True?
это значит ,как верно указывает йййй,что FOREIGN KEY НЕЛЬЗЯ строить на поле,если оно не NOT NULL!
...
Рейтинг: 0 / 0
26.07.2004, 10:22:32
    #32620684
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
это значит ,как верно указывает йййй,что FOREIGN KEY НЕЛЬЗЯ строить на поле,если оно не NOT NULL!
Я??? Нет, я такого не мог указывать. Очень даже льзя строить Foreign Key на необязательном поле. Иначе как, например, строить связь один-ко-многим с необязательным вхождением со стороны многие?

Обязательное поле - это обязательное поле. Внешний ключ - это внешний ключ. Не надо путать теплое с мягким.
...
Рейтинг: 0 / 0
26.07.2004, 10:24:35
    #32620690
Александр 200230
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Я всё понял - сделаю его Not Null. Только нормальная прога ударила бы меня по рукам еще в момент построения связи и сказала бы - мол, нельзя так, а надо так и вот так. А раз уж позволяешь - будь добр уметь с этим корректно работать, или в автомате делай его Not Null. Вот Visual FoxPro вроде стразу говорит - типа, индекс соответствующий сделай сначала, потом объединяй...

Ладно - так, значит так. Вроде больше нечего обсуждать - спасибо всем.
...
Рейтинг: 0 / 0
26.07.2004, 10:27:02
    #32620695
Shuhard
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
йййй это значит ,как верно указывает йййй,что FOREIGN KEY НЕЛЬЗЯ строить на поле,если оно не NOT NULL!
Я??? Нет, я такого не мог указывать. Очень даже льзя строить Foreign Key на необязательном поле. Иначе как, например, строить связь один-ко-многим с необязательным вхождением со стороны многие?

Обязательное поле - это обязательное поле. Внешний ключ - это внешний ключ. Не надо путать теплое с мягким.

зззз водка была тёплой , а что было мягким ?
...
Рейтинг: 0 / 0
26.07.2004, 10:35:35
    #32620717
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Только нормальная прога ударила бы меня по рукам еще в момент построения связи и сказала бы - мол, нельзя так, а надо так и вот так.
Чего нельзя? Связь нельзя делать по необязательному полю? Да кто вам такую чушь сказал?

Вот Visual FoxPro вроде стразу говорит - типа, индекс соответствующий сделай сначала, потом объединяй...
Ну а аксес и индекс сам делает для связи.
Или вам кто-то сказал, что нельзя индексировать необязательные поля?
...
Рейтинг: 0 / 0
26.07.2004, 14:23:04
    #32621256
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
ИМНО, в Access есть противоречие между FK и UK. В известных мне других системах (и, кстати, в Access 2.0) FK не проверяется если хотя бы одно из его полей NULL. В Access если в FK есть NULL и не NULL, вставка пройдет лишь если в соответствующем UK есть такая же комбинация значений (которая может и повторяться!). Т.е. получается как-бы многие-ко-многим!!!
Не есть ли это грубая архитектурная ошибка?
...
Рейтинг: 0 / 0
26.07.2004, 14:30:21
    #32621266
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Не есть ли это грубая архитектурная ошибка?
Есть
Но это уже немного из другой оперы.
Из оперы про то, что на стороне " один " должен быть уникальный индекс по обязательному полю / комбинации обязательных полей.
Или же аксес должен по другому обрабатывать Null в уникальных индексах.
...
Рейтинг: 0 / 0
26.07.2004, 15:52:07
    #32621530
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
2 йййй
Уникальность ключа на стороне "один" естественно предполагается (без этого не создашь FK). Но ситуация, когда имеется FK, некоторые поля которого не заполняются возможна. И в нынешнем Access выход из нее - дублирование обязательной части FK (с проверками равенства, естественно)
...
Рейтинг: 0 / 0
26.07.2004, 15:59:12
    #32621546
Раз (1)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
В MS-SQL например совершенно спокойно можно создавать Foreign key на nullable поля, при этом проверяются только непустые значения.

Не вижу в этом ничего плохого для архитектуры БД :)
...
Рейтинг: 0 / 0
26.07.2004, 16:10:58
    #32621583
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
2 *
Знаю, знаю, не спорю.
Ты про логику проверки - я про возможность получения связи многие-ко-многим вместо один-ко-многим.

2 Раз (1)
В MS SQL уникальный индекс по необязательному полю не может содержать несколько записей со значением Null - будет нарушение уникальности. Где MS SQL находит нарушение - мне непонятно, ибо в таблице отсутствуют записи, в которых индексированные поля совпадали бы (ибо Null не равен ничему, в том числе и другому Null'у)
В аксесе уникальный индекс по необязательному полю может содержать несколько Null'ов. Что само по себе и неплохо, но в сочетании с проверкой частично заполненного FK - дает то самое грубое архитектурное нарушение.
...
Рейтинг: 0 / 0
26.07.2004, 16:19:44
    #32621611
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Вдогонку

2 *
*2 йййй
Уникальность ключа на стороне "один" естественно предполагается (без этого не создашь FK).
Уникальность - предполагается
Однако я писал:
авторчто на стороне "один" должен быть уникальный индекс по обязательному полю / комбинации обязательных полей.
...
Рейтинг: 0 / 0
26.07.2004, 16:26:31
    #32621632
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Да, но речь не об этом. А о том, что
1. на сторне "много" требуется все или ничего
2. на стороне "один" обязательность заполнения не требуется системой и если ее нет, приходим к странному
3. правила меняются от версии к версии
...
Рейтинг: 0 / 0
26.07.2004, 16:35:57
    #32621652
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
2. на стороне "один" обязательность заполнения не требуется системой и если ее нет, приходим к странному
Да и я, в общем-то, о том же. Либо обязательность, либо не проверять ссылки для частично заполненного FK (и не выполнять всякие там каскадные обновления/удаления), либо получим бред.
...
Рейтинг: 0 / 0
26.07.2004, 17:01:14
    #32621713
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
ййййибо Null не равен ничему, в том числе и другому Null'уЕсли уйти из проскости Скуля в абстрактное философствование, то это - довольно сильное утверждение. Скорее всего, записи не отбираются потому, что для двух Null-ей сама операция сравнения (равно/не равно) становится невыполнимой, ибо в такой трактовке Null1 <равен/не равен> Null2 - одинаково бессмысленные условия.
...
Рейтинг: 0 / 0
26.07.2004, 17:24:21
    #32621769
SergeySV
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Мощно задвинул
...
Рейтинг: 0 / 0
26.07.2004, 17:51:10
    #32621843
zz
zz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Зашибись.
Значит, с точки зрения абстрактного философствования:
(Null=Null) = False
(Null<>Null) = False

Или
(Null=Null) = Null
(Null<>Null) = Null
??
...
Рейтинг: 0 / 0
26.07.2004, 18:00:23
    #32621867
Лифчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Нет. просто недопустимая операция. Типа на ноль делить нельзя, но если вы хотите все же в своей аксиоматике приписать какой-то результат, то будете нести ответственность за весь геморрой, который за этим последует
...
Рейтинг: 0 / 0
26.07.2004, 18:01:59
    #32621868
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
Алё, гараж??? Ctrl-G нажмите
...
Рейтинг: 0 / 0
26.07.2004, 18:03:18
    #32621873
йййй
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Что за ссылочная целостность такая?
ээээ
незаметил что вы из плоскости скуля ушли
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Что за ссылочная целостность такая? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]