在批准记录之前,不会更新用于编辑记录和确保记录的数据库技术

时间:2016-07-05 17:34:13

标签: database postgresql schema structure relational

您将如何处理以下情况的情况?

您的客户记录表包含以下字段:

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数据库。

-----更新格式---

1 个答案:

答案 0 :(得分:0)

对于需要审核的每个属性,我都有一个额外的属性。

在您的示例中,条目可以是:

id, name, name_tmp, email, email_tmp, phone, phone_tmp

name将包含已批准的名称,name_tmp用户已编辑的名称。
获得批准后,name_tmp的内容将复制到name

这样你就不会对外键关系产生任何问题。

如果您真的不想要主表中的属性,请创建一个customer_temp表,就像您建议使用id作为主键,外键引用customer。缺点是你的查询需要更多的连接。