Sql server 如何管理数据库中已更改的项目及其以前的名称
当您有销售订单和项目表,然后在某个时间点您必须更改项目时,如何处理这种情况。更改也将显示在包含该项目的销售订单上。但是,假设销售订单发出时,信息是正确的,但后来发生了更改。我不希望较旧的SOs更改行项目的显示内容,也不希望必须制作新项目,因为这会使我以后混淆哪个项目是正确的Sql server 如何管理数据库中已更改的项目及其以前的名称,sql-server,database-design,Sql Server,Database Design,当您有销售订单和项目表,然后在某个时间点您必须更改项目时,如何处理这种情况。更改也将显示在包含该项目的销售订单上。但是,假设销售订单发出时,信息是正确的,但后来发生了更改。我不希望较旧的SOs更改行项目的显示内容,也不希望必须制作新项目,因为这会使我以后混淆哪个项目是正确的 我注意到,在OpenERP中,它只会保留销售订单上的零件号名称和说明,即使您在销售订单生成后更改了它。如果您正在创建新数据库,请重新构造项目表。创建一个表(例如,ItemHistory)。在上面有ItemID和ItemTyp
我注意到,在OpenERP中,它只会保留销售订单上的零件号名称和说明,即使您在销售订单生成后更改了它。如果您正在创建新数据库,请重新构造项目表。创建一个表(例如,
ItemHistory
)。在上面有ItemID
和ItemTypeID
和DateCreated
字段
ItemID应该用于订单,并且
ItemTypeID
+DateCreated
将帮助您获取当前项目。这是否意味着在创建订单时我必须创建两个项目表并将一个项目复制到另一个项目?@DennisZaitsev不,您不需要创建两个项目表ItemTable
将具有ItemDetails
、ItemStatus
(活动或不活动)、ItemType(来自ItemTypeTable
的外键)。在ItemTypeTable
中,您将存储ItemType(例如Iphone4、Iphone4s、诺基亚Luma等)。每次更新项目详细信息时。在“ItemTable”中创建状态为active的新记录,并将旧记录状态更新为inactive。加入ItemTypeTable
将帮助您快速获得结果。它将允许您访问项目的旧详细信息以及最近的详细信息。