4

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

处理数据库的应用程序的结构也将模块化。

这是有时会做的事情吗?在技​​术方面,据我所知,视图不能有主键 - 那么我将如何处理这样的视图?还有哪些问题需要考虑?

4

2 回答 2

2

这是有时会做的事情吗?

是的,视图通常用于将事物与处于变化状态的数据模型隔离开来。

在技​​术方面,据我所知,视图不能有主键 - 那么我将如何解决这样的视图?

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

也就是说,不推荐分层视图(创建一个从另一个视图中选择的视图)——它很脆弱,并且由于有人想要简单而不是查询优化,因此性能下降的风险很大。

于 2010-06-10T19:49:42.690 回答
0

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

  • 确保通过分析查询计划对您的查询进行了很好的性能测试。视图将使用基础表的索引,但执行计划错误的可能性更高。

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

于 2010-06-10T19:06:10.830 回答