作为打字稿的后端开发人员,我一直在做各种项目,一个特别的挑战一直重新铺面:为多个租户的用户实施强大的许可系统。
我最初尝试使用TypeOm和一个关系数据库来解决此问题,但这是一项令人沮丧的努力,感觉不太合适。
为了寻找更好的解决方案,我踏上了Web开发工具和数据库的广阔景观的旅程。
那是我偶然发现SurrealDB的时候,让我告诉你,这是令人难以置信的。
除了解决我的直接问题外,它还引发了一系列思想,以应对我其他项目中的众多挑战。
毫不犹豫地,我首先想到了SurreAldB,而经验被证明是改变游戏规则的。
多模型数据库
SurreAldB是一个多功能的多模型数据库,可为您提供可能性的世界。您可以以各种方式利用它:作为传统的关系数据库,一个直接的键值商店,类似于MongoDB的NOSQL数据库,甚至作为强大的图形数据库。它与众不同的是它提供了令人难以置信的灵活性。
在本教程中,我们将首先存储基本数据,例如具有诸如名称,姓氏和电子邮件之类的属性的用户实体,就像您在NOSQL数据库中一样,例如MongoDB。然后,在下一步中,我们将通过合并表模式来增强数据完整性,类似于您在传统的关系数据库中找到的数据完整性。
但这还不是全部。
我们将通过使用关系信息丰富此基础数据,利用图数据库功能以实现全面解决方案来进一步迈出一步。
记录
SurreaLDB的真正出色而有效的核心特征围绕其记录ID。
这些ID分为两个不同的部分。
第一部分表示表或实体域,而第二部分表示该域内特定实体的唯一标识符。
设定SurseLDB的是其非凡的灵活性 - 标识符可以采用多种形式,包括数字,字符串,UUID,ULID,甚至是复杂的物体。
这种多功能性使SurreAldB能力,将其变成数据库世界中的稀有性 - 真正的独角兽。
我全心全意地鼓励您探索official documentation以解锁此非凡功能的全部潜力。
在本教程中,我们将浏览记录ID的潜力的表面。我们将坚持基本标识符,以帮助您掌握我们如何存储,连接和检索数据的基本概念。
SurseLDB的功能
,我想强调一些SurseAldB可能是您的绝佳解决方案的情况,而不是详尽地列出SurreaLDB的奇妙功能和可能性的详尽列表:
- 时间序列数据
- 地理数据
- 订阅数据库更改
- 物联网,边缘和嵌入式设备。
- 社交网络数据
为我们的教程设置
要与本教程一起,您需要具有功能齐全的SursteLDB实例。
我建议在内存模式下启动Docker容器。这使您可以在实验和探索时方便地重置或重新启动数据库。
官方SurreLDB网站:https://surrealdb.com
对于直接与数据库进行交互,您可以使用https://surrealist.app/。
现在,让我们继续进行本系列的下一部分。
在本节中,我们将首先了解这个问题,并讨论我们计划如何使用SursteLDB。