Я разрабатываю таблицы для хранения учетных записей пользователей сайта.Для сайта будет два типа учетных записей: BuyerAccounts и SellerAccounts.Мой подход заключается в том, чтобы иметь основную таблицу учетных записей, в которой будет храниться информация, которая является общей для обоих типов учетных записей, а затем иметь таблицу для BuyerAccounts и SellerAccounts.
Это базовая настройка.
create table Accounts
(
UserID_PK int identity not null primary key,
Email varchar(50) not null unique,
UserPassword varchar(50) not null,
Salt varchar(50) not null,
AccountType tinyint not null,
);
create table SellerAccounts
(
SellerID_PK int not null primary key foreign key references Accounts(UserID_PK),
SellerColumn int
);
create table BuyerAccounts
(
BuyerID_PK int not null primary key foreign key references Accounts(UserID_PK),
DeliveryAddress string,
BuyerColumn string
);
Каждый из SellerAccounts и BuyerAccounts имеет Первичный ключ, который также является Внешним ключом, ссылающимся на Первичный ключ таблицы Счетов.
Пока все это нормально, но я новичок, так чтоСкажите, пожалуйста, сделал ли я что-то не так или плохо.
Когда создается учетная запись, я хочу создать запись в Учетных записях, а также запись в BuyerAccounts или SellerAccounts.
Как сделатьЯ сделаю это?Я собираюсь сделать это хранимой процедурой, но моя главная задача здесь состоит в том, как сделать INSERT в две таблицы, которые связаны между собой.Допустим, создается аккаунт покупателя.Нужно ли разбивать создание аккаунта на два ВСТАВКИ?Сначала в Учетные записи, так что известен UserID_PK для учетной записи, которая также будет BuyerID_PK BuyerAccounts, а затем остальная информация об учетной записи может быть вставлена в BuyerAccounts?Это как должно работать?
Как мне написать INSERT, который возвращает UserID_PK, чтобы он у меня был для второй вставки?Или, что еще лучше, SQL Server может сделать что-то умное и просто определить для меня значения UserID_PK и BuyerID_PK и сделать все с помощью одной вставки?
Спасибо за помощь!