加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

如何在文件系统和数据库之间进行协调?

发布时间:2021-03-14 16:34:32 所属栏目:编程 来源:网络整理
导读:我正在开拓一个在线文件打点项目.我们在数据库(sql server)上存储引用,并在文件体系上存储文件数据. 当我们上传文件时以及删除文件时,我们正面对文件体系和数据库之间的和谐题目.起首,我们在数据库中建设引用或在文件体系上存储文件. 题目是,假如我先在数据库

我正在开拓一个在线文件打点项目.我们在数据库(sql server)上存储引用,并在文件体系上存储文件数据.

当我们上传文件时以及删除文件时,我们正面对文件体系和数据库之间的和谐题目.起首,我们在数据库中建设引用或在文件体系上存储文件.

题目是,假如我先在数据库中建设一个引用然后将文件存储在文件体系上,可是在文件体系上存储文件时会产生任何范例的错误,那么该文件的引用是在数据库中建设的但没有文件数据存在于文件体系中.

请给我一些办理方案如那里理赏罚这种环境.我很是必要它.

我们删除文件时也会产生这种环境?

办理要领

会见文件体系确实不是事宜性的.您必要本身模仿一个全有或全无的漫衍式事宜:假如数据库中的提交失败,请删除文件体系上的文件.相反,假如写入文件失败,则回滚数据库事宜(这将会更伟大,但这是一个大致的草图).

请留意,更新文件时也许会很是伟大.您起首必要复制它,以便在您包围文件后数据库事宜失败时仍可以规复该文件的旧版本.是否要执行此操纵取决于所需的妥当性级别.

实行逼迫全部操纵都通过您的应用措施(建设,写入,删除文件).假如你不能这样做,你不能阻止文件直接在文件体系上会见(并也许被删除),除了周期性地将数据库与文件体系同步之外,我没有此外步伐:搜查哪个文件被删除和删除数据库中的条目.您可以建设一个每X分钟运行一次的功课.

我还提议在数据库中存储文件的哈希值(譬喻MD5).花一点时刻来计较它,但这对我来说很是有效,可以检测到题目,譬喻:假如文件在文件体系上被错误重定名但在数据库中没有重定名.这也应承按期运行一些完备性搜查,以验证没有任何题目被搞砸.

假如这种要领还不足(譬喻,你但愿它更强盛),我以为除了将二进制文件存储在LOB中的数据库之外别无他法.那么它将是真正的买卖营业和安详.

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读