Обновление, ограничения внешнего ключа и нули

Я создаю шаблон данных на C#. С помощью хороших людей на этом замечательном сайте мне удалось решить почти все вопросы. Это должна быть последняя проблема. Поскольку это шаблон, над которым я работаю, мне нужно каждое поле в таблице, включая нули. Мне помогли, как обновить нули, добавив (объект) this.field ?? DBNull.Value, но у меня есть поле, являющееся внешним ключом, и хотя, когда я смотрю в базу данных, он говорит null, когда я извлекаю записи, значение становится 0. Когда я пытаюсь обновить это поле, оно говорит, что я нарушаю внешний ключ ограничения. Как я могу обойти эту проблему? Я думал, что нулевое решение будет работать, но оно не отображается как нулевое, а отображается как 0.

Спасибо

Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
0
0
233
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В общем, разрешать FK быть нулевым - не лучшая идея. Некоторые базы данных (я знаю, что это делает Oracle) применяют это, привязывая FK к первичным ключам, а не к столбцам в других таблицах. Не могли бы вы реорганизовать свои таблицы, чтобы не нули для этого столбца?

К сожалению, нет, потому что это не таблицы, созданные нами, поэтому нам нужно работать с тем, что у нас есть.

jumbojs 18.01.2009 07:06

«нам нужно работать с тем, что у нас есть» ... да, это печальная история нашей жизни. :-)

Mark Harrison 19.01.2009 05:23
Ответ принят как подходящий

0 - возможное допустимое значение для столбца? Если нет, просто введите для него значение null, когда вы его встретите. Если он действителен, вы все равно можете сделать это, заключив его в условное выражение, которое проверяет, что внешняя строка существует первой.

Другие вопросы по теме