На самом деле это не просто вопрос C #. Большинство разработчиков программного обеспечения столкнулись с этим решением.
Мой выбор - использовать ноль в качестве верхнего родителя. Ради
Сценарий 1: если мы не используем Nullable в столбце PARENTID;
1-) Прежде всего мы должны указать отношение внешнего ключа для таблицы среди столбцов parentid и id
2) PARENTID первой записи (верхнего родителя) должен быть равен собственному идентификатору,
так что это плохая практика, потому что это вызывает бесконечный цикл в отношении.
Сценарий 2: если мы используем столбец PARENTID со значением NULL;
1) К счастью, большинство СУБД допускают нулевые значения для отношений с внешним ключом.
2) Это позволяет первой или любой другой записи быть верхней родительской строкой, просто имея нулевое значение PARENTID.
Так что нам не нужно создавать бесконечный цикл.
Я думаю, что забыть нулевую проверку или забыть специальное значение не отличается.
У нас уже есть специальное значение, это нулевое значение:)
В некоторых проектах, которые я собираю ранее, использовался Empty Guid. И я вижу в отчетах такие пункты, как «Пожалуйста, выберите», «Выбрать». Потому что его верхний родитель (пустой Guid). Поэтому мне нужно проверить это.