- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在做一个在线文件管理项目。我们在其中存储对数据库(sql server)的引用和在文件系统上的文件数据;在其中我们面临着文件系统和数据库之间的协调问题,而我们正在上传文件以及删除文件的情况下,首先我们在数据库中创建引用或将文件存储在文件系统中;问题是,如果先在数据库中创建引用,然后将文件存储在文件系统中。 bur 在文件系统上存储文件时发生任何类型的错误。然后在数据库中创建该文件的引用,但文件系统上没有文件数据;;请给我一些如何处理这种情况的解决方案;;我非常需要它;;
原因是什么?
最佳答案
这实际上比您想象的要容易一些。
首先,您需要确定“单一事实来源”。
也就是说,文件系统或数据库在任何给定的时间点都是正确的,它是哪一个?
这样做的原因是它可以更容易地解决冲突。
您应该假设数据库是您的源,并且文件系统是数据库的影子。这似乎违反直觉,因为如果一个条目不在文件系统中,它怎么会存在于数据库中。显然不能。但是,基本上,如果文件不在数据库中,那么无论如何“它不存在”。因此,文件系统反射(reflect)了数据库的状态,而不是相反。
鉴于这些假设,您最终会得到这些冲突解决规则。
对于任何给定的文件:
File Exists DB Entry Exists Action
Yes Yes No action, normal state
No Yes Error -- missing file, "should never happen"
No No No action, normal state
Yes No Delete the file, but no error.
Start DB transaction
Rename file
Add DB record
Commit transaction
Start DB Transaction
Delete DB record
Commit transaction
Delete file from file system
关于database-design - 如何保证跨两个数据库(文件系统和 RDBMS)的原子性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2525821/
RDBMS 中有哪些不同类型的键?请在答案中包含示例。 最佳答案 来自 here和 here :(在我用谷歌搜索你的标题后) Alternate key - An alternate key is a
请解释什么是 RDBMS 中的集群? 最佳答案 在 SQL 中,簇也可以指行的特定物理顺序。 例如,考虑一个包含两个表的数据库:INVOICES 和 INVOICE_ITEMS。如果同时插入许多 IN
请解释什么是 RDBMS 中的集群? 最佳答案 在 SQL 中,簇也可以指行的特定物理顺序。 例如,考虑一个包含两个表的数据库:INVOICES 和 INVOICE_ITEMS。如果同时插入许多 IN
这个问题在这里已经有了答案: What is the difference between DBMS and RDBMS? (9 个回答) 关闭 10 个月前。 这就是他们的区别吗,这就是我的理解。
如果我正确理解了 CAP 定理,可用性意味着即使节点出现故障,集群也会继续运行。 我见过很多人(http://blog.nahurst.com/tag/guide)将RDBMS列为CA,但我不明白RB
关闭。这个问题需要更多 focused .它目前不接受答案。 想改进这个问题?更新问题,使其仅关注一个问题 editing this post . 6年前关闭。 Improve this questi
在我作为首席开发人员的项目中,我们之前有一个存储单个 XML 文件的网络配置。配置包含有关网络布局的信息 - 其组成主机、每个主机的各种详细信息(如操作系统、平台、每个主机中配置的用户、每个用户的多个
我想编写一些可以在几乎所有数据库中运行而没有任何 SQLExceptions 的查询。那么,我在哪里可以获得编写查询的 ANSI 标准? 最佳答案 不确定这对您有帮助。 供应商在标准实现方面千差万别,
作为一名程序员,我在各种系统上工作过,一些使用 Oracle,一些使用 MySQL。我一直听到人们说 Oracle 更稳定、更健壮、更安全。是这样吗? 如果是,以什么方式和为什么? 为了这个问题的目的
重要提示:我收到了很多答案,感谢大家。但是所有的答案都是评论多于答案。我的问题与每个 RDBMS 的往返次数有关。一位有经验的人告诉我,MySQL 的往返次数比 Firebird 少。我希望答案保持在
我正在开发一个开源产品,需要一个嵌入式 dbms。 你能推荐一个嵌入式开源数据库吗... 每个可以处理超过 10 GB 的对象 拥有对嵌入友好的许可证(LGPL,而非 GPL)。 是纯Java 是(最
为什么使用同义词?,syNONYMS IN SQL 的优点? 最佳答案 它们只是数据库中对象的简写名称。例如,您可以创建一个名为 Products 的同义词。如果您在名为 ProductionCont
我经常创建的查询具有7-8个联接来检索数据。在实际的数据库应用程序中,是否有许多这样的联接正常?或者我的数据库设计不佳?我很好奇,因为如果在每个请求数据库上必须做很多工作,那么如果成千上万的客户端连接
Aheo问是不是ok to have a table with just one column .如果没有列,或者考虑到在大多数现代“关系”DBMS 中这似乎很难做到,那么没有属性的关系如何? 最佳答
模式的定义是数据库中数据的逻辑结构。它归用户所有,并且与数据库用户同名。模式包含表的名称,列类型是什么等等。数据字典也仅包含元数据(当然,它是在数据库级别而不是用户级别)。模式和数据字典之间的确切区别
在以下方面设置游泳池的最佳方法是什么: - 你什么时候创建连接? 你什么时候关闭连接,你会关闭所有连接吗? 你测试连接还是不错的。何时以及如何? 您如何确定最大连接数的好数字? 你有什么样的监控来确保
我目前正在尝试选择数据库供应商。 我只是想从其他数据库开发人员那里征求一些个人意见。 我的问题特别针对以下人群: 1) 之前使用过支持复制到磁盘(混合)的主内存数据库(MMDB)(即 ExtremeD
空值表示 没有值(value) 不适用、未分配、未知或不可用 哪个是真的? 最佳答案 这完全取决于使用它的上下文。 null 表示没有值,但其原因取决于使用它的域。在许多情况下,您列出的项目都是 nu
假设我有这个 RDBM 表(Entity-attribute-value_model): col1: entityID col2: attributeName col3: value 由于扩展问题,我
我想知道是否在其中一个属性上创建了具有聚集索引的表或特别是堆文件是根据该属性排序的。排序的堆文件和具有聚集索引的堆文件之间有区别吗? 最佳答案 Is there a difference betwee
我是一名优秀的程序员,十分优秀!