gpt4 book ai didi

MySQL:如何测试我的数据库架构(外键一致性、存储过程等)

转载 作者:可可西里 更新时间:2023-11-01 07:04:38 24 4
gpt4 key购买 nike

我只是想设计一个更大的数据库架构。它将包含一组表、多个 View 和相当多的存储过程。由于它是一个较大类型的数据库,并且处于开发的早期阶段(实际上它还只是在早期设计阶段),我觉得需要一个测试套件来验证重构过程中的完整性。

就应用程序逻辑而言,我非常熟悉服务器端(主要是 PHPUnit)和客户端(Selenium 和 Android 测试基础设施)的测试概念。

但是我该如何测试我的数据库架构呢?

  • 是否有某种类似的数据库测试策略和工具,特别是 MySQL?

  • 如何验证我的 View 、存储过程、触发器和天知道什么在我更改基础表后仍然有效?

  • 我是否必须使用 PHP 层来封装数据库以启用数据库逻辑(存储过程、触发器等)测试?

最佳答案

数据库测试有两个方面。

  • One 面向从业务逻辑的角度测试数据库,不应关注持久化数据。在那个级别有一个众所周知的技术 - ORM。这种情况下的算法很简单:描述一个模型并创建一组独特的案例标准来测试所有级联 Action 是否按预期执行(我的意思是,如果我们创建 Product 并将其链接到 Category,那么在保存 session 后我们将获得所有写入 DB 的实体以及它们之间的所有必需关系).多说一点:一些 ORM 已经提供了一个单元测试模块(例如,NHibernate),其中一些甚至更酷的工具:创建数据库的最简单和最快的方法方案、模型、测试用例:例如,Fluent NHibernate

  • Second 面向测试数据库模式 本身。为此,您可以查看一个好的图书馆 DbUnit .引自官网:

DbUnit is a JUnit extension (also usable with Ant) targeted at database-driven projects that, among other things, puts your database into a known state between test runs. DbUnit has the ability to export and import your database data to and from XML datasets. Since version 2.0, DbUnit can also work with very large datasets when used in streaming mode. DbUnit can also help you to verify that your database data match an expected set of values.

最后,我强烈推荐您阅读来自Evolutionary Database Design 的文章“Martin Fowler's site” .它有点过时(2003 年),但仍然值得一读。

关于MySQL:如何测试我的数据库架构(外键一致性、存储过程等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10958663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com