您将如何处理以下情况的情况?
您的客户记录表包含以下字段:
id, name, email, phone
1, John, john@example.com, 515-222-3333
2, Smith, smith@example.com, 515-333-444
约翰打开他的记录并更改了他的电话号码。但是,在管理员批准更改之前,不应更改客户的实际记录。
你会如何应对这种情况?
你会吗?a. Create an exact replica of customer table called customer-temp
b. Copy the record of John into customer-temp
c. let the admin review the updated record in customer-temp
d. once approved, the record is replaced with the record of john in customer table and remove John's record from customer-temp
这是最好的解决方案还是有更好的方法来解决这个问题?如果客户表在关系中有其他几个表怎么办?
专家建议将不胜感激。仅供参考,我使用的是Postgresql数据库。
-----更新格式---
答案 0 :(得分:0)
对于需要审核的每个属性,我都有一个额外的属性。
在您的示例中,条目可以是:
id, name, name_tmp, email, email_tmp, phone, phone_tmp
name
将包含已批准的名称,name_tmp
用户已编辑的名称。
获得批准后,name_tmp
的内容将复制到name
。
这样你就不会对外键关系产生任何问题。
如果您真的不想要主表中的属性,请创建一个customer_temp
表,就像您建议使用id
作为主键,外键引用customer
。缺点是你的查询需要更多的连接。