为了避免软删除,我正在创建一个回收站数据库。主数据库将连接到它。这是两种可能的连接方法的示例,我希望提供一些更有效的输入?
为简单起见,假设有两个表,Order
并且Invoice
(每张发票只有 1 个订单)。
Order
-----
OrderId
InvoiceId
Description
Date
NumberOfStuffOrdered
Invoice
-------
InvoiceId
Description
Price
Tax
Shipping
对于这些表与回收站的连接,我不确定采用哪种方法。
方法一:
DeletedOrder
------------
DeletedOrderId
OrderId
RecycleBinId
Date
Reason
DeletedInvoice
--------------
DeletedInvoiceId
InvoiceId
RecycleBinId
Date
Reason
方法二:
DeletedRecords
--------------
DeletedRecordsId
RecordPrimaryKeyId
RecycleBinId
RecordType
Date
Reason
尽管方法 1 将在数据库中占用更多的表空间,但随着系统的成熟,每个表的行数会更少,并且查询时间会更快。方法 2 合并了必须为数据库中的每个表创建一个额外的已删除表,但随着系统的成熟,大小会增长并且查询速度会变慢。
哪一个整体上会更有效,或者有更好的方法来解决这个问题?