使用视图作为数据库中模块之间的数据接口

时间:2010-06-10 19:01:11

标签: mysql database views modularity

我正在研究Mysql中直接小型数据库的数据库布局。 我们希望模块化这个系统,以便为我们将要进行的不同实现提供更多的灵活性。现在,我们的想法是在数据库中有一个模块(简单的一组表,它们之间有约束)通过视图将其数据传递给下一个模块。通过这种方式,一个模块中的更改不会影响其他模块,因为我们可以在视图中确保任何时候都存在正确的数据,尽管表的基础结构可能不同。

处理数据库的App的结构同样也是模块化的。

这有时会完成吗? 在技​​术方面,据我所知,观点不能有主键 - 我如何才能获得这样的观点? 还应该考虑哪些其他问题?

2 个答案:

答案 0 :(得分:2)

  

这有时会完成吗?

是的,视图通常用于将数据模型中的事物隔离开来。

  

在技术方面,据我所知,观点不能有主键 - 我如何处理这样的观点?

MySQL不支持物化视图。非物化视图只是准备好的SQL语句 - 它们在数据模型中不存在,并且性能最终基于底层表和查询优化上存在的内容。

也就是说,不推荐使用分层视图(创建从另一个视图中选择的视图) - 它很脆弱,并且由于有人希望简化优于查询优化,因此性能会降低很大的风险。

答案 1 :(得分:0)

这是一种有效的方法,但你当然应该小心:

  • 确保您的查询在分析查询计划时经过了良好的性能测试。视图将使用基础表的索引,但不良执行计划的可能性更高。

  • 确保存在足够的视图以涵盖所有需要的信息。