BuyerAccounts и SellerAccounts Tables, которые обе ссылаются на Таблицу счетов. Создать учетную запись INSERT - PullRequest
1 голос
/ 04 июня 2011

Я разрабатываю таблицы для хранения учетных записей пользователей сайта.Для сайта будет два типа учетных записей: 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 и сделать все с помощью одной вставки?

Спасибо за помощь!

1 Ответ

2 голосов
/ 04 июня 2011

использование scope_identity ()

Пример

declare @id int

insert Accounts values('a@b.com','pass','bla',1)
select @id = SCOPE_IDENTITY()

insert SellerAccounts values(@id,1)

select * from SellerAccounts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...