Я использую MS SQL Server 2008R2, но я считаю, что это не зависит от базы данных.
Я переделываю часть своей структуры sql и ищу лучший способ установить отношения 1 ко многим.
У меня есть 3 таблицы, Компании, Поставщики и Утилиты, любая из которых может иметь отношение 1 ко многим с другой таблицей под названием VanInfo.
Информация о фургоне может принадлежать компании, поставщику или коммунальному предприятию.
Первоначально в таблице VanInfo у меня был company_id, который указывал на таблицу company, но затем, когда я добавлял поставщиков, им также потребовались записи vaninfo, поэтому я добавил еще один столбец в VanInfo для supplier_id и установил ограничениечто был установлен либо supplier_id, либо company_id, а другой был нулевым.
Теперь я добавил утилиты, и теперь им нужен доступ к таблице VanInfo, и я понимаю, что это не оптимальная структура.
Каков был бы правильный способ установить эти отношения?Или мне просто продолжить добавление внешних ключей в таблицу VanInfo?или создать какую-то таблицу перекрестных ссылок.
Технически приложение еще не запущено, но я хочу убедиться, что оно настроено с использованием наилучших возможных практик.
ОБНОВЛЕНИЕ: Спасибо за все быстрые ответы.
Я прочитал все предложения, проверил все ссылки.Моим основным критерием является то, что было бы легко изменить и поддерживать, поскольку требования клиентов всегда имеют тенденцию меняться без особого уведомления.После изучения, исследования и планирования, я думаю, что лучше пойти с таблицей перекрестных ссылок с названием «Организации» и отношениями «1: 1» между компаниями / коммунальными предприятиями / поставщиками и таблицей организаций, что позволяет четко установить связь с таблицей Vaninfo.,Это будет легко поддерживать и по-прежнему правильно моделировать мои бизнес-объекты.