Я считаю, что эти проекты в порядке. Важно то, что когда-то вы выбираете дизайн, чтобы придерживаться его. В базе данных, над которой я работаю ежедневно, используется много разных конструкций. Иногда существуют нули, нули или 1 или -1, которые представляют, что объект предназначен для ВСЕХ сущностей или для них нет. Возможно, имеется другое значение, которое выводится, что просто зависит от того, как таблица базы данных была первоначально реализована, и от того, соответствуют ли данные, помещаемые в эту таблицу, исходному дизайну.
Так что я говорю: «Да» - это, конечно, нормально.
Дизайн, который вы упомянули в своем вопросе, заключается в том, как мое приложение определяет клиентов по умолчанию. Это используется во многих различных разделах моего приложения.
Например - чтобы показать системные элементы каталога по умолчанию, доступные для всех клиентов:
SELECT * FROM CatalogItems ci WHERE ci.customerId is null;
Чтобы найти пользовательские «элементы каталога» для конкретного клиента:
SELECT * FROM CatalogItems ci WHERE ci.customerId = @customerid;
И, как вы указали, если вы хотите найти ВСЕ доступные «элементы каталога» для клиента:
SELECT * FROM CatalogItems ci WHERE ci.customerId is null or ci.Customerid = @customerid;