我有以下问题: 我有一张桌子,我将用一个程序阅读,同时这张桌子每天都会刷新。但刷新程序不可靠,可能随时失败。我得到了以下解决方案:
1. 刷新程序将数据写入tmp表,成功后,我删除读取表,然后将tmp表重命名为读取表。
2. 我创建了三个表T1,T2,S。T1和T2是数据表。 S是记录表(T1或T2)以供读取的状态表。刷新程序首先查询S为当前读表,然后另一个是写表,将数据加载到写表中,成功后,更新S使写表成为读表。每次查询程序首先从S获取读表,然后从中读取数据。
我想知道哪一个更好,为什么?或者你们有更好的解决方案。 感谢您的帮助,谢谢!
答案 0 :(得分:0)
这实际上取决于您的数据模型。 表之间有约束吗?如果是这样,您将需要以正确的顺序删除/插入。 您还使用哪个数据库?
在你的fisrt解决方案中,你放弃了桌子。如果您正在使用触发器或存储过程或任何其他类型的数据库内容,那么在删除后它将无效。 所以你需要重新编译对象。
还有为什么需要删除表中的所有行? 您可以添加日期字段,即重复日期,并保留例如1天或5天的保留期或无论如何。 然后,在完成并验证加载过程时,清除前一天的数据。