В моей базе данных я получил список компаний с колонками CompanyId и Name.Далее есть пользователи, и эти пользователи могут добавлять продукты.Таблицы: user и user_products Нет таблицы продуктов, определяющей продукты, они уникальны для каждого пользователя, поэтому «user_product»
Когда пользователь добавляет продукт, он вводит название компании.Если это имя компании существует в таблице компании, я хочу установить соединение с таблицей компании, а не сохранять только имя в user_product.Пока все хорошо ... Я просто храню CompanyId в таблице user_product.
Проблема в том, что пользователь вводит имя, которого нет в таблице компании.Вместо сохранения имени как varchar я хочу создать новую запись в таблице с именем user_company.Стол получил столбцы: UserCompanyId (PK), UserId, Name.Если комбинация Name и UserId уже существует, я, конечно, не буду создавать новую строку, просто сослаться на этот идентификатор.
Что я должен сделать, чтобы поддерживать хороший дизайн базы данных здесь ... Должен ли я добавить эту запись, а такженовый столбец в user_product с именем UserCompanyId.Так что либо CompanyId, либо UserCompanyId всегда устанавливаются при добавлении новой строки.Такое ощущение, что это можно сделать лучше.Кто-нибудь есть какие-нибудь идеи?
Конечно, я мог бы иметь только одну таблицу "компания" и иметь столбец UserId, который равен нулю, когда это глобальная компания, добавленная системой, или UserId фактически установлен, когда пользователь имеетдобавил название компании, которая не существует во всем мире.Это тоже нехорошо ...