元のテーブルがありました:
CREATE TABLE [dbo].[tblSalesOrderPayment]
(
[PaymentID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[SalesOrderID] [int] NOT NULL,
[PaymentType] [int] NOT NULL,
[AmountPaid] [decimal](18, 2) NOT NULL,
[AmountTendered] [decimal](18, 2) NOT NULL,
[PaymentDate] [datetime] NOT NULL,
[Cashier] [int] NOT NULL,
[PaymentStatus] [bit] NOT NULL
)
..そして、このような別のテーブルを設計しました
CREATE TABLE [dbo].[tblReturnOrderPayment]
(
[PaymentID] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[ReturnOrderID] [int] NOT NULL,
[PaymentType] [tinyint] NOT NULL,
[AmountPaid] [decimal](18, 2) NOT NULL,
[AmountTendered] [decimal](18, 2) NOT NULL,
[PaymentDate] [datetime] NOT NULL,
[Cashier] [int] NOT NULL,
[PaymentStatus] [bit] NOT NULL
)
.. ご覧のとおり、列と型の数は同じですが、外部キーが異なります。tblSalesOrderPayment には tblSalesOrder からの SalesOrderID があり、tblReturnOrderPayment には tblReturnOrder からの ReturnOrderID があります。
- 販売注文が既に返品されたら、すべての支払いの詳細を tblReturnOrderPayment に転送する必要がありますが、参照用に tblSalesOrderPayment からの記録を保持する必要があります。
- 販売注文が返品されると、将来の支払いは tblReturnOrderPayment に保存されます。
これらのテーブルの適切な設計は何ですか?