我有 2 个表格 DraftProducts 和 Products。
两个表之间的唯一区别是“阶段”字段。
我的 DraftProducts 表中有 productCode varchar(20)、phase(tinyint)、Name、Price、SpecialCells.... 等字段。
对我来说,最后一个阶段实际上是 Product 表中的 1 条记录。
直到现在,当 1 位用户说草稿工作完成时,我自动在 Product 表中记录了最后一个阶段。
但是当最后的草稿发生变化时,它需要再次更新。删除时需要删除它等。很多额外的工作正在进行中。
在我的数据库中,一些表来自 DraftProducts 表,一些表来自 Products 表。
但是我可以将其作为独立于用户的“产品视图”来执行吗?
如何使用 max(phase) 1 记录创建“ProductsView”?我应该如何分组或区分?
由于这个表,我想要的 Products 表或视图应该是这样的。
p1=8 价格、类别、描述等 p2=15 价格、类别、描述等 p3=22 价格、类别、描述等
CREATE TABLE [dbo].[DraftProducts](
[productCode] [varchar](20) NULL,
[phase] [varchar](50) NULL,
[name] [varchar](50) NULL,
[category] [varchar](20) NULL,
[description] [varchar](20) NULL,
[price] float NULL
)
CREATE UNIQUE CLUSTERED INDEX [DraftProductsIndex1] ON [dbo].[DraftProducts]
(
[productCode] ASC,
[phase] ASC
)
insert into DraftProducts (productCode,phase,name)
values
('p1',1,'aaaaaaaaaaaaaaa'),
('p2',2,'aaaaaaaaaaaaaaa'),
('p3',1,'aaaaaaaaaaaaaaa'),
('p2',15,'bbbbbbbbbbbbbbb'),
('p3',22,'bbbbbbbbbbbbbbb'),
('p1',8,'bbbbbbbbbbbbbbbbbbbbbbbbb'),
('p2',7,'ccccccccccccccc')
7 rows affected
select * from DraftProducts
/*
finish phase
p1=8
p2=15
p3=22
*/
产品代码 | 阶段 | 姓名 | 类别 | 描述 | 价格 |
---|---|---|---|---|---|
p1 | 1 | 啊啊啊啊啊啊 | 无效的 | 无效的 | 无效的 |
p1 | 8 | bbbbbbbbbbbbbbbbbbbbbbbbbbb | 无效的 | 无效的 | 无效的 |
p2 | 15 | bbbbbbbbbbbbbbb | 无效的 | 无效的 | 无效的 |
p2 | 2 | 啊啊啊啊啊啊 | 无效的 | 无效的 | 无效的 |
p2 | 7 | cccccccccccccc | 无效的 | 无效的 | 无效的 |
p3 | 1 | 啊啊啊啊啊啊 | 无效的 | 无效的 | 无效的 |
p3 | 22 | bbbbbbbbbbbbbbb | 无效的 | 无效的 | 无效的 |