读文档时产生的疑问,关于数据库部分/

总所周知我有一个glm女友插件,但这个女友插件有一个很致命的问题,就是不能拥有记忆,于是我就想着如何让glm女友保存对用户的记忆,阴差阳错的,我就去查看关于数据库的资料。

但是我不太了解数据库,甚至我第一次知道数据库这个名词也是来自这个帖子

通过haku的发帖,我知道“数据库”是一个能够保存消息的东西,我就想既然“数据库”能保存用户发过的消息,那么能不能也能保存对用户的“记忆”呢

于是基于这个原因,我开始查看koishi开发文档相关部分:

里面有提到:

“如果你是插件开发者,你并不需要关心具体的数据库实现。但是如果你是 Koishi 的使用者,只有当安装了数据库你才能正常使用所有的特性。首先你需要安装数据库依赖”

然后,我就被这句话难倒了

原文是说:如果你是插件开发者,你并不需要关心具体的数据库实现。但是如果你是 Koishi 的使用者,只有当安装了数据库你才能正常使用所有的特性。首先你需要安装数据库依赖 ,这句话,从语文的角度分析,就是说如果我不是 Koishi 的使用者(而是前面的开发者),我就不用安装数据库数据库,因此,我也不需要安装数据库依赖。

有点懵,但是问题不大,然后我看第二步

原文说然后,与你添加插件同样的方法配置你的数据库

但问题是,是插件的使用者需要这么做,还是插件的开发者需要这么做。
v2-23fa96e89599e1677198fe94e201c59a_r

于是,我就打了自己的一巴掌,有这么一种可能,插件的开发者同时也是插件的使用者呢。

因此这个说法没问题。

再看看文档的标题, 开发指南

读一下,开发指南
20141220150150_diC8W

果然!

因此,我可以推断,因为是开发文档,因此这里的操作都是给开发者看的,因此里面提到的步骤,都是跟开发者有关的,所以我悟了。
6d81800a19d8bc3e876545f0838ba61ea8d3459e

我要进行第二步操作:像与你添加插件同样的方法配置你的数据库

等等!我平时也不是这么添加插件的,我每次yarn new 之后,都是直接点右上角那个插头的:
a8563c114296bc2d9605434f1fc097b

果然,这个教程还是给使用者看的!!!

正当我以为可以盖棺定论的时候,我看到了第三步:

调用数据库接口,调用数据库接口…

谁家用户会需要用代码调用数据库接口啊!
s3mejthjmiixlrdwl4sfr7e5urems2f2_hq

果然,果然,这里的文档还是要给开发者者看的,真相大白了。

v2-5c345424cedb4052b2fcc528554a8334_1440w

那问题就来了。开头的这一段到底是什么意思

如果你是插件开发者,你并不需要关心具体的数据库实现。
但是如果你是 Koishi 的使用者,
只有当安装了数据库你才能正常使用所有的特性。首先你需要安装数据库依赖

我试着解读一下

我放弃了

反正下面已经给出解答了↓↓↓ (溜了

1 个赞

是的,如果你不是 Koishi 的使用者,而是前面的开发者,你就不用安装数据库,也不需要数据库依赖,就可以进行开发。 我曾在完全脱机的环境下开发插件(纯手写),当然不需要安装任何依赖,连 koishi 这个依赖都不需要。

但,一般情况下,开发者一定会是 Koishi 的使用者, 不然也就没有必要进行插件开发了。


相当一部分开发者在开发和使用 Koishi 的时候完全不使用控制台。他们使用 yml 配置文件添加插件。

关于要不要安装数据库和第二步配置数据库的疑问解决了。

只是我还有一点疑惑,文档在写给开发者用的开发文档提到了这一步操作,如果是开发者,那必要性不大,因为il说了:

那么这一步对开发者来说是不需要操作的,甚至会造成一定的误导(我就傻乎乎地按文档yarn add 了)

但如果是单纯的使用者,我觉得他完全不会在开发文档里面找这两句话,因为作为单纯的使用者,他们并不关心数据库的原理,他们大概率压根不看开发文档。

但是,这句话写在这里的用意,我至今还不清楚,就这两句话,我已经分析了4个小时了(烧脑)。

R

1 个赞

你说得很对,对现代 Koishi 开发者而言,他们已经不需要再安装数据库。可以考虑申请删掉这两段话。

1 个赞

你真的可以不用加那么多图 :cry:真的好大

1 个赞

我认为OP发布的这句话的意思是,你可以使用一个统一的接口(由minato提供,支持sqlite、MySQL、mongo等),而不是为每个数据库软件编写独立的代码。在这种情况下,数据库的“实现”(即用户使用的确切数据库)应该是一个可忽略的事情,只有当你不使用超出minato功能的高级操作时,你才能将其视为相同的东西。

作为常规用户,你肯定需要安装一个数据库软件。目前,我们提供了一个sqlite插件,它捆绑了一个可用的sqlite引擎,所以你不需要自己安装一个。但如果你使用其他数据库,你必须按照指南设置你的数据库。

作为开发者,说实话,在开发中你不需要一个数据库。但是,理论上你应该确保你的插件在使用代码中的数据库接口时能够正常运行。在测试中,你需要配置至少一个数据库,不是吗?

因此,总之,你可以始终使用统一的接口,无论用户使用哪个数据库,但你需要安装数据库软件,以防测试你开发的插件。

(翻译由自研 GPT 引擎强力驱动)

原文如下

I think the sentence posted by OP is meaning that you could use a unified interface (which is provided by minato, supporting sqlite, MySQL, mongo and so on) instead of writing independent code for each database software. In this case, the “implementation” (which means the exact database that users using) of a database should be an ignorable thing to you temporary: only if you don’t use advanced operations that beyond the functionality of minato, you could always regard it as the same thing.
As a regular user, you definitely are required to install a database software. Currently we provide the sqlite plugin that bundles a usable sqlite engine so you don’t need to install one yourself. But if you are using others, you must follow the guide to setup your database.
As a developer, honestly you don’t need a database in development. But, theoretically you should make sure your plugin running well with a database when you are using the database interface in your code. In the testing, you’ll need to configure at least one database, isn’t it?

So, in the conclusion, the sentence you posted means that you could always use the unified interface no matter which database that users are using, but you’ll need to install a database software just in case of testing the plugin you developped.

1 个赞

因为这就是论坛(

1 个赞

有一说一,GPT 写官方发言真的不错 ,挑不出什么毛病 不过就是感觉一眼ai (?)

1 个赞

大图可以指定显示时候的尺寸的。在编辑器中插入图片后,在右边的预览窗格的图片的右下角会弹出尺寸,选择 25% 即可。

2 个赞