Я борюсь с дизайном базы данных, это то, что у меня есть до сих пор.Включить дополнительные требования в устаревший дизайн базы данных
Вот проблемы.
мне нужно ввести новый тип пользователя (менеджер конгломерат), и они будут иметь видимость групп компаний (конгломерат). Менеджер конгломерации может иметь несколько компаний, и компания может принадлежать нескольким менеджерам конгломератов. Было бы выгодно, если бы можно было добавить независимую компанию, а затем на более позднюю дату легко включить в состав конгломерата.
Мне кажется, что это сложно моделировать, поскольку все мои пользователи до сих пор (менеджер, драйвер, получатель) все существуют в таблице пользователей. Это было по дизайну, поскольку все они имеют почти одинаковые поля данных, и мне нужно иметь единую точку входа для всех пользователей на моем сайте. Если я добавлю менеджер конгломерации в таблицу users, у них будут отношения с другими таблицами, которых нет у моих существующих типов пользователей.
Я беспокоюсь о цикле зависимостей, образованном пользователями, владельцами, пакетами, компаниями, пользователями. Это выглядит мне плохой формой, но я действительно не могу придумать, как избежать этого:
Менеджеры, водители и получатели работают в одной компании. У этой компании есть связанный набор пакетов, но мне нужно иметь возможность связывать подмножество этих пакетов с конкретным получателем (у них есть собственные пакеты) и с определенным драйвером или менеджером (ответственным за доставку этих пакетов).
Я не доволен полем «receive_emails» у пользователей, так как это относится только к пользователям типа «получатель».
Чтобы добавить к проблемам, этот проект уже используется, и данные должны быть перенесены в любой новый дизайн.
Наиболее распространенными операциями, которые происходят в системе, являются просмотр статусов получателями, а затем создание статусов менеджерами и драйверами.
Могу ли я решить проблему с помощью элегантного нового дизайна?
Вам нужно будет разбить это на один вопрос. Это слишком широкое для этого форума. –
Из того, что вы сказали в параграфе 1, вам понадобится много-много отношений между пользователями и компаниями. –
Не беспокойтесь о перемещении столбцов в разные таблицы. Да, миграция будет немного сложнее, но вы собираетесь жить с дизайном базы данных на протяжении десятилетий. –