为了避免软删除,我创建了一个回收站数据库。主数据库将连接到它。以下是两种可能的联结方式的示例,我希望提供哪些更有效的输入?在这种情况下哪种数据库连接方法更有效?
为简单起见,假设有两个表,Order
和Invoice
(且每个发票只有1个订单)。
Order
-----
OrderId
InvoiceId
Description
Date
NumberOfStuffOrdered
Invoice
-------
InvoiceId
Description
Price
Tax
Shipping
对于这些表到回收站的连接处,我不确定采取哪种方法。
方法1:
DeletedOrder
------------
DeletedOrderId
OrderId
RecycleBinId
Date
Reason
DeletedInvoice
--------------
DeletedInvoiceId
InvoiceId
RecycleBinId
Date
Reason
方法2:
DeletedRecords
--------------
DeletedRecordsId
RecordPrimaryKeyId
RecycleBinId
RecordType
Date
Reason
尽管方法1将采取多个表空间在数据库中,将有每个表的行数更少,并且具有快速的查询时间为系统成熟。方法2合并必须为数据库中的每个表创建一个额外的删除表,但是随着系统成熟度的增长,查询速度会变慢。
哪一个整体效率更高,还是有更好的方法来处理?
谢谢你的回应。好的表现总是至关重要的! ;)大多数情况下,我希望保留数据以确保参照完整性得到维护,而无需在记录需要删除时删除外键关联或级联删除。这也将有助于能够恢复已删除的记录而不会影响性能。回收站将有一个级联删除功能,以便谨慎使用。 – 2012-03-29 20:27:11