В моей системе 3 типа пользователей. каждый тип имеет разную информацию
Я создал следующие таблицы:
BaseUser(base_user_id, username, password, additional common data)
base_user_id - это PK и Identity
UserType1(user_id, data related to type1 only)
user_id - это PK и FK для base_user_id
UserType2(user_id, data related to type2 only)
user_id - это PK и FK для base_user_id
UserType3(user_id, data related to type3 only)
user_id - это PK и FK для base_user_id
Теперь я имею отношение к каждому типу пользователей к таблице складов. Пользователи типа 1 и типа 2 должны иметь только warehouse_id, а пользователи типа 3 должны иметь warehouse_id и customer_id.
Я думал об этой структуре:
WarehouseOfUser(base_user_id,warehouse_id)
base_user_id - от FK до base_user_id в BaseUser
WarehouseOfTyp3User(base_user_id,warehouse_id, customer_id)
base_user_id - от FK до base_user_id в BaseUser
Проблема в том, что такая структура допускает 2 вещи, которые я хочу предотвратить:
1. добавить в WarehouseOfTyp3User данные пользователя от типа 2 или типа 1.
2. добавить в WarehouseOfUser данные пользователя из типа 3.
какая структура лучше всего подходит для такого случая?
Обновление: я должен использовать один и тот же диапазон идентификаторов для всех типов пользователей. Я не могу создать отдельную таблицу для каждого пользователя, поскольку мне нужен один и тот же идентификатор_пользователя для каждой таблицы.