【发布时间】:2010-06-01 13:26:57
【问题描述】:
我有一张包含订单详情的表格。用户可以在首次添加这些详细信息后对其进行修改。我的问题是在更新更改之前保存更正确的方法是什么。我的意思不仅仅是主观的思维方式,还有我列出的每种方式的缺点或者你的建议......
我想创建一个与 Orders 相同的 Orders 历史表,所以一旦我更新了一个订单,旧的就会移动到 HistoryOrders 并且这个 Order 也会更新。
另一种方法是在每次使用订单中的父字段时有更新时创建新订单,即。 first Order 的 parentOrderID 为 null,而 update 在 parentOrderID 列行中更新 orderID 之前...
我需要稍后处理这些数据,所以我需要最灵活的解决方案......也许我错过了另一个选择......
CREATE TABLE [dbo].[Orders](
[orderID] [int] IDENTITY(1,1) NOT NULL,
[userID] [int] NOT NULL,
[paymentMethodID] [tinyint] NOT NULL,
[orderAmount] [smallint] NOT NULL,
[orderStatusID] [tinyint] NOT NULL,
[date] [smalldatetime] NOT NULL,
CONSTRAINT [PK_Orders] PRIMARY KEY CLUSTERED
(
[orderID] 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
ALTER TABLE [dbo].[Orders] WITH CHECK ADD CONSTRAINT [FK_Orders_Users] FOREIGN KEY([userID])
REFERENCES [dbo].[Users] ([userID])
GO
ALTER TABLE [dbo].[Orders] CHECK CONSTRAINT [FK_Orders_Users]
GO
谢谢
【问题讨论】:
-
您使用的是什么版本的 SQL Server?
标签: sql sql-server