【问题标题】:Architecture solution in accessing same table by many modules多模块访问同一张表的架构解决方案
【发布时间】:2021-07-12 16:27:39
【问题描述】:

例如,很多模块直接使用用户查询访问表T。

我认为这是非常错误的架构。我想知道架构和解决方案出了什么问题

谢谢

【问题讨论】:

    标签: database architecture


    【解决方案1】:

    这是一个依赖问题 - 如果您在该表中进行更改,每个使用它的模块都必须更新。

    另一个潜在问题(您没有指定有关如何使用此表的任何内容)是多个模块可以对表进行更改,然后它可能会进入不一致的状态(从逻辑上讲,尽管可以通过事务在一定程度上缓解这种情况)

    另一个问题是表可能成为争用点并导致性能问题

    可能会出现一些其他问题,例如规模或责任过多等,但您确实需要提供有关您的情况的更多详细信息以获得更具体的答案

    【讨论】:

    • 在我的例子中,至少三个模块引用了一个表,我们必须删除表中的一列,因为该列与表中其他三列的组合相等。但是,如果我删除此列,所有模块都应更改其代码和查询。我知道架构是错误的,但我找不到修复它的解决方案。如果必须更改结构,我愿意更改数据库结构。谢谢。
    • 根据您的情况,最简单的方法是在表格顶部创建一个或多个保留旧结构的视图,然后您可以花时间迁移各种模块(或考虑重构整体解决方案)
    • 谢谢。如果我在表和相关表上创建视图,我可以花时间迁移所有代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2011-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-15
    • 2015-07-27
    相关资源
    最近更新 更多