با سلام خدمت همه دوستان
من یه نرم افزار فروش و حسابداری و انبار داری دارم طراحی میکنم
یه جدول دارم که فاکتور های فروش تو ثبت میشن که شامل شماره فاکتور و ... هست
یه جدول دیگه دارم که ایتم های فاکتور فروش توش ثبت میشن
ساختارش به شکل زیر

CREATE TABLE [dbo].[S_SaleInvoiceDetails](
[S_InvoiceNo] [bigint] NOT NULL,
[MaterialCode] [int] NOT NULL,
[Qty] [decimal](18, 3) NOT NULL,
[UnitPrice] [decimal](18, 0) NOT NULL,
[Remark] [nvarchar](50) NULL,
[Location] [nvarchar](50) NOT NULL,
[RowID] [bigint] IDENTITY(1,1) NOT NULL,
[Initial_Price] [decimal](18, 0) NULL,
[TS] [timestamp] NOT NULL,
CONSTRAINT [PK_S_SaleInvoiceDetails] PRIMARY KEY CLUSTERED
(
[S_InvoiceNo] ASC,
[MaterialCode] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO



حالا سوال من اینه که ایا فیلد لوکیشن باید تو همین جدول S_SaleInvoiceDetails باشه؟
مثلا فرض کنید یه کالا توی دو مکان خاص هست مثلا 2 تا تو لوکیشن A و 6 تا تو B
حالا یه مشتری میخواد 7 تا از یه کالا بخره
عمل تخصیص رو کجا باید انجام بدم؟
ایا رکورد باید تکرار بشه تو جدول S_SaleInvoiceDetails فقط با لوکیشن و مقدار جدید؟

تو SP انجام بدم بهتره یا تو کد برنامه

ممنون میشم یکی منو راهنمایی کنه