Fra*_*rzi 5 orm node.js typescript typeorm nestjs
我的应用程序是用NestJS和TypeORM 构建的,我现在需要指定实体之间的关系。
在官方文件显示,我应该换一个模块内一个单一的实体:
Photo 实体属于 photo 目录。该目录代表 PhotoModule。将模型文件保存在何处由您决定。从我们的角度来看,最好的方法是在相应的模块目录中将它们保存在它们的域附近。
但是如何处理彼此相关的不同实体(例如一对多、多对多等...)?他们应该住在同一个模块中吗?如何?
我现在面临着类似的设计决策。我必须决定代表多对多关系的表应该驻留在哪里。我将把我的方法留在这里,以防它对其他人有用。
\n我相信你提到的官方文档现在已经略有更新,他们使用用户而不是照片。
\n\n\n用户模型文件位于用户目录中。该目录包含与UsersModule 相关的所有文件。您可以决定将模型文件保存在何处,但是,我们建议在相应的模块目录中靠近其域的位置创建它们。
\n
我决定将 subyacent 概念放在父目录中。因此,如果我们有概念Organization、Employee,以及表示它们的多对多关系的实体(假设称为 )OrganizationEmployees。
因此,文件夹结构最终看起来像这样:
\nsrc\n\xe2\x94\x82 ... \n\xe2\x94\x82\n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80organizations\n\xe2\x94\x82 \xe2\x94\x82 organizations.dto.ts\n\xe2\x94\x82 \xe2\x94\x82 organizations.entity.ts\n\xe2\x94\x82 \xe2\x94\x82 organizations.controller.ts\n\xe2\x94\x82 \xe2\x94\x82 ...\n\xe2\x94\x82 \xe2\x94\x82\n\xe2\x94\x82 \xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80organizationUsers\n\xe2\x94\x82 \xe2\x94\x82 organizationUsers.dto.ts\n\xe2\x94\x82 \xe2\x94\x82 organizationUsers.entity.ts\n\xe2\x94\x82 \n\xe2\x94\x94\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80users\n\xe2\x94\x82 \xe2\x94\x82 users.dto.ts\n\xe2\x94\x82 \xe2\x94\x82 users.entity.ts\n\xe2\x94\x82 \xe2\x94\x82 users.controller.ts\n\xe2\x94\x82 \xe2\x94\x82 ...\nRun Code Online (Sandbox Code Playgroud)\n做出这样的决定的原因如下:
\n如果我们关注文档引用的粗体部分(“靠近他们的域”),我会说思考这些与多对多关系的参与者之一密切相关的概念是有效的。
\n从设计的角度来看,这是有道理的。我相信为代表多对多关系的概念创建一个完整的模块是没有意义的,如果这就是它要代表的内容(没有控制器等)。
\n