如何使用人工智能生成数据库模式?

Back4app 人工智能代理数据库模式封面

为高效的后台解决方案设计数据库是一项具有挑战性的工作。找出所有需要的类、关系等是非常耗时的。

此外,在设计阶段做出错误的决定可能会对后期的生产造成不利影响。

本文将讨论如何使用人工智能生成数据库模式。我们将探讨使用人工智能的好处及其隐患,并提供几个实用示例。

此外,您还将学习如何进一步利用人工智能生成一个完整的后台,而无需编写任何代码!

使用人工智能进行数据库设计的好处

让我们先来看看使用人工智能的好处。

自动化与成本效益

将人工智能融入数据库设计的第一个优势,也可能是最明显的优势,就是能够自动执行各种任务。

这包括生成数据库模式、优化数据库、设置索引、编写高级查询等。

综上所述,可大大节省时间和成本。

优化

人工智能在优化数据库结构方面发挥着至关重要的作用。通过先进的算法和机器学习,人工智能可以分析数据使用模式,并对数据库模式提出改进建议。

这种优化可以提高应用程序的性能和响应速度。

与现有数据库整合

使用人工智能的另一大好处是,它可以帮助您升级现有数据库。

您只需向人工智能代理描述当前数据库或生成数据库转储,然后描述所需的升级。

如果使用Back4app Agent,这将变得更加简单。无需生成数据库转储,您可以告诉代理挂钩现有应用程序:

Connect to my "movie-reviews" app and create a new database class named `Watchlist`.

人工智能代理将收集所有需要的上下文,并相应地升级您的数据库。

不易出错

将人工智能融入数据库设计可减少人为错误的可能性。

传统的数据库设计和优化流程通常需要人工干预,从而增加了错误的风险,如不正确的模式设计、低效的查询或次优的索引选择。

轻松实现可视化

利用人工智能,您可以轻松实现数据库结构的可视化。要使数据库可视化,可提示人工智能代理为您最喜欢的 ER 图表工具生成可视化代码。

下面是Mermaid的例子:

Generate Mermaid ER diagram visualization code for my database.

结果

erDiagram
    USER ||--o{ REVIEW : writes
    MOVIE ||--o{ REVIEW : has
    MOVIE ||--o{ MOVIEGENRE : has

    USER {
        username String
        email String
        emailVerified Boolean
        displayName String
    }

    MOVIE {
        title String
        releaseDate Date
        duration Number
        director String
        cast Array
        synopsis String
    }

    // ...

使用人工智能进行数据库设计的陷阱

幻觉

人工智能代理有时会提供听起来合理但不正确或无意义的信息。这就是所谓的幻觉,大多数大型语言模型(LLM)都会出现这种情况。

因此,刚接触数据库的开发人员不应该使用人工智能来生成数据库模式。

性能

人工智能生成的数据库模式不保证是最优的。人工智能代理可能会误解你试图构建的内容,从而为你提供一个次优或有缺陷的数据库模式。

使用人工智能进行数据库设计是一个迭代过程。如果你发现人工智能代理犯了一个错误,请指出来。它也许能修正错误或改进模式。

边缘案例

如果您的业务需要非典型的数据库设计,使用人工智能可能不是最好的主意。大多数人工智能代理都是在大量通用应用程序上训练出来的。

他们不知道如何使用您的专业数据库。

如果是这种情况,你最好依靠专家,而不是一般的人工智能解决方案。

如何使用人工智能生成数据库模式?

在本节文章中,我们将介绍使用人工智能生成数据库模式的三个实用示例。这些示例包括一个简单的博客应用程序、一个电子商务网站和一个电影评论网站。

之后,我们将了解Back4app AI 代理的其他功能。

以下步骤需要您有一个Back4app 帐户。如果您还没有账户,请免费注册

目标

  1. 生成数据库模式
  2. 使用模式创建数据库
  3. 分析自动生成的 RESTful 和 GraphQL API
  4. 审查自动生成的文件
  5. 利用云代码功能

什么是 Back4app Agent?

Back4app Agent是一个由人工智能驱动的代理,可让您通过对话的方式执行与云相关的任务。

这包括创建应用程序、部署应用程序、设计数据库以及编写 Dockerfile 或前端代码。

利用 Back4app Agent,您将拥有自己的私人 DevOps 助手,全天候为您服务。最重要的是,它可以随时学习,并在您的工作中不断改进。

代理与Back4appBack4app Containers 紧密集成。如果您已经在使用 Back4app 的任何服务,该代理是您的必备工具!

请记住,人工智能代理并不是一个神奇的工具。它是一个大型、复杂的语言模型(LLM),可能会犯错误。如果出现这种情况,就需要由您来纠正了。此外,(像我一样)提交相同的提示可能会得到不同的回复。

案例 1:博客网站

作为第一个示例,我们将提示人工智能代理设计一个博客数据库模式。在这个示例中,我们将提供尽可能少的信息,看看人工智能代理能否解决缺失的部分。

导航至Back4app 代理页面,创建一个新代理,并使用以下提示:

Create a database schema for a simple blog. Each article in the blog should have a `title`, `shortContent`, `content`, `tags`, and other administrative data. The articles should be filterable by `tags`.

生成模式的实体关系(ER)图:

Back4app 人工智能代理博客 ER 图

可以看到,代理成功创建了一个有效的数据库模式。它包含了所有必需的类,并处理了它们之间的关系。此外,它还包含了创建时间更新时间ACL 等 Parse 管理字段。

案例 2:电子商务网站

接下来,让我们尝试一个更复杂的数据库模式。这次是一个电子商务网站。

向人工智能代理提交以下提示:

Create a database schema for an e-commerce website. The database should allow sellers 
to post listings. After a listing is posted, a user can open an order for it. The 
order should be associated with the user's shipping address. Amazon is a good example 
of what I'm looking for.

代理生成了以下数据库模式:

Back4app AI 代理电子商务 ER 图

代理再次返回有效的数据库模式。

我唯一想修改的是订单地址的关系。订单与单个地址相关联,而地址可跨订单重复使用,这样会更合理。

案例 3:审查网站

在最后一个示例中,我们将生成一个电影评论数据库模式。在这里,我们将提供尽可能多的上下文,看看人工智能代理能否根据我们的详细说明创建一个模式。

向人工智能代理发出以下提示:

Create a database schema for a movie review website. The database should contain 
the following models: `Movie`, `MovieGenre`, `Review`,  and `User` (Parse).

Notes:
- A `Movie` can have multiple genres
- The `Review` should contain at least `title`, `content`, `rating`, and `is_critic`
- Each `Review` should be associated with a `User`

Make sure to include all the Parse administrative fields, such as `createdAt`,
`updatedAt`, and `ACL`.

人工智能代理生成了以下数据库模式:

Back4app 人工智能代理审查 ER 图

又一个伟大的方案。

所有的类都得到了处理,而且关系看起来也不错。在这里,人工智能代理甚至生成了一个中间模型,处理 “电影 "和 “流派“类之间的M:N关系。

数据库生成

正如介绍中提到的,Back4app Agent 与 Back4app 的其他服务紧密集成。

生成数据库模式只是人工智能代理可以做的事情之一。一旦有了模式,我们就可以快速创建数据库。

向代理发出以下提示:

Create a Back4app app called "back4app-reviews" using the generated database schema.
Back4app AI 代理创建数据库响应

很好,看来代理成功创建了应用程序和所需的数据库结构。

接下来,请代理向数据库输入一些数据:

Populate the database with sample users, movie genres, and reviews.
Back4app 填充数据库响应

导航至Back4app 面板,选择您的应用程序并检查数据库条目,以确保数据库已创建并填充。

Back4app 生成并填充数据库

就是这样!

我们现在有了一个功能齐全的电影评论网站数据库。

自动生成的应用程序接口

Back4app 允许您通过以下方式与后台进行通信:

  1. 自动生成的 RESTful API
  2. 自动生成的 GraphQL API
  3. Parse SDK

让我们逐一分析。

RESTful API

REST 基于 HTTP 协议,使用不同的 HTTP 方法,如GETPOSTPUTDELETE来操作资源。

这些操作通常称为 CRUD(创建、检索、更新、删除)。REST 支持多种数据格式,但首选格式是 JSON。

要测试 REST API,请导航到您的应用程序,然后选择侧边栏上的 “API > 控制台 > REST”。

Back4app REST 控制台

请在表格中填写以下信息:

  • 请求类型GET
  • 终点:classes/Movie
  • 万能钥匙正确

然后,点击 “发送查询 “执行查询。

您应该会收到与此类似的回复:

{
    "results": [
        {
            "objectId": "AD1r4b9Oie",
            "title": "The Fast Saga",
            "duration": 120,
            "director": "Justin Lin",
            "cast": [
                "Vin Diesel",
                "Michelle Rodriguez"
            ],
            "synopsis": "Street racing, heists, and espionage.",
            "createdAt": "2024-02-03T21:53:54.724Z",
            "updatedAt": "2024-02-03T21:53:54.724Z",
        },
        {
            "objectId": "Sr6FQjnckj",
            "title": "The Serious Case",
            "duration": 140,
            "director": "Christopher Nolan",
            "cast": [
                "Christian Bale",
                "Michael Caine"
            ],
            "synopsis": "An intricate story of human emotions and relationships",
            "createdAt": "2024-02-03T21:53:54.724Z",
            "updatedAt": "2024-02-03T21:53:54.724Z",
        },
        // ...
    ]
}

列表操作运行良好。电影已成功序列化并以 JSON 格式返回。为了了解 RESTful API 的工作原理,我建议您也测试一下其他操作。

要了解有关 RESTful API 的更多信息,请参阅《如何构建 RESTful API?

GraphQL API

GraphQL 既是一种查询语言,也是一种服务器端运行时,可促进应用编程接口 (API) 的开发。

这项技术使客户能够指定他们需要从应用程序接口获取的数据,从而无需依赖后台的预定义数据集。

要测试 GraphQL 查询,请导航至侧边栏上的 “API > 控制台 > GraphQL”。

Back4app GraphQL 控制台

接下来,运行以下 GraphQL 查询:

{
  reviews {
    count
    edges {
      node {
        objectId
        rating
      }
    }
  }
}

正如您所看到的,查询获取了所有评论,但只包含了它们的objectId评分。欢迎再次测试不同的查询和操作。

要了解有关 GraphQL 的更多信息,请参阅《如何构建 GraphQL API?

Parse SDK

Parse SDK 是连接前台和后台的推荐方式。这种方式最稳健、最不易出错。

Parse SDK 支持多种编程语言和框架,包括 JavaScript、TypeScript、Objective-C 等。

它允许您执行 CRUD 操作、高级查询等。

要了解如何使用 Parse SDK,请查看如何托管前端和后端?

自动生成文档

Back4app 的另一大优点是它能为所有数据库模型自动生成文档。

您将获得简单易懂的文字说明和各种编程语言(如 JavaScript、TypeScript、Objective-C、Swift 等)的便捷代码片段。

要访问文档,请导航到您的应用程序,然后选择侧边栏上的 “API > API Reference”:

Back4app API 参考

下面是文档的截图:

Back4app 生成的文档

云代码

Back4app 可让您通过所谓的云代码功能执行自定义 JavaScript 代码。

这些功能有助于执行复杂的操作,如数据汇总、导出等。

云代码功能可由 Parse 或 HTTP 请求触发,也可安排在未来运行。

云代码功能

假设我们需要一个云代码函数来计算一部电影的平均评分。我们可以自己编写和部署,但让人工智能代理来做会更简单。

导航至 AI Agent 屏幕,并按以下提示操作:

Please write me a Cloud Code function that calculates a movie's average rating. The the function should take in the movie's `objectId` and return a float (average rating).
Back4app 人工智能代理云代码响应

请使用以下 cURL 命令进行测试:

$ curl -X POST \
   -H "X-Parse-Application-Id: <your_app_id>" \
   -H "X-Parse-REST-API-Key: <your_rest_api_key>" \
   -H "Content-Type: application/json" \
   -d '{"movieId": "<movie_object_id>"}' \
   https://parseapi.back4app.com/functions/calculateAverageRating

确保替换占位符 (<your_app_id>, <your_rest_api_key>, 和 <movie_object_id>) 替换为实际值。要获取 “应用程序 ID “和 “REST API 密钥”,请导航到您的应用程序,选择侧边栏上的 “应用程序设置 > 安全性和密钥”。

你应该会得到类似的答复:

{
  "result": 4.25
}

要查看后台生成的代码,请导航至侧边栏上的 “云代码 > 功能与虚拟主机”。然后选择文件夹中的main.js

Back4app 云代码

云代码调度

最后,提示人工智能代理安排每周工作:

Create and deploy a Cloud Code job named `clearRatings()`, which deletes all 
the ratings. Schedule it to run every week.
Back4app 时间表响应

代理已成功创建了一项作业,并按周进行了计划。

结论

总之,我们已经成功利用人工智能生成了数据库模式。

我们还学习了如何创建 Back4app 应用程序和数据库、生成示例数据以及实施自定义云代码功能,这一切都离不开对话的力量。

请记住,使用人工智能创建数据库模式是一个迭代过程。如果你认为某些功能可以更好地实现,请向代理解释,它就会相应地修改你的模式。

其他文章资源可在back4app-ai-agent-schemarepo 上获取。


Leave a reply

Your email address will not be published.