Я разрабатываю схему базы данных для CRM. Он имеет следующие таблицы: users
, organizations
, contacts
, addresses
, organization_types
.Должен ли я разбивать таблицу своих организаций на две таблицы?
organizations
Возможно, это компания, некоммерческая организация или физическое лицо.
users
имеет отношение много к большому числу с organizations
. Причина в том, что одна компания, например, может иметь продавца и менеджера в приложении с двумя разными логинами. С другой стороны, есть вероятность, что продавец делает продажи для двух разных компаний.
contact
и addresses
имеют отношение к одному с organizations
. Мой клиент хочет, чтобы организация имела один из них.
Я разработал его таким образом, что organization
также может быть клиентом, который будет принадлежать другому organization
. Это означало бы, что таблица организации имела отношение к самому себе.
Это имело смысл для меня, потому что они кажутся одной и той же сущностью. Клиенту также понадобятся таблицы contacts
и addresses
, и это может быть и компания, некоммерческая или индивидуальная.
Считается, что с еще одним разработчиком было бы интересно запросить базу данных, чтобы отличать организации, которые являются нашими клиентами, от клиентов, которые являются клиентами наших клиентов.
Каков наилучший подход? Было бы лучше сделать таблицу client_organizations и разделить эти два?
Вы спрашиваете о выполнении иерархических запросов? (организация-клиент-организации-клиент-организации-клиент-организации и т. д.) –
@ О. Джонс Я просто хочу знать, будет ли это aproach слишком дорогостоящим, чтобы делать запросы. Чтобы отличить, какие организации подписаны на использование моего CRM-приложения, а какие - их клиенты, просто зарегистрировались на нашем продукте. Было бы лучше сделать таблицу 'client_organizations'? –
У меня была бы только одна таблица организаций – Strawberry