gpt4 book ai didi

node.js - 多对多关系的正确文件夹结构

转载 作者:行者123 更新时间:2023-12-05 06:47:18 24 4
gpt4 key购买 nike

我遵循 nestjs 最常见的结构,其中每个域都有单独的文件夹

src/
user/
controllers/
user.controller.ts
repositories/
user.repository.ts
services/
user.service.ts
user.module.ts
team/
// the same as above but for team entity
team.module.ts
app.module.ts

在我的应用程序中,userteam 之间存在多对多关系。因此,用户可以有很多团队,因为团队可以有很多用户。为此,我创建了表 user_teams 并为该表创建了一个明显的独立存储库。在我的应用程序的大部分地方,我需要使用像 getAllUsersInTeam(idTeam: number)getAllTeamsBelongsToUser(idUser: number) 这样的函数,我已经在存储库 UserTeamRepository。我的问题是保存此存储库文件的正确位置在哪里?在哪个模块?我有几个想法

  1. 在与主要域实体相同的级别上创建一个单独的文件夹

    src/
    user/
    // user module files
    team/
    // team module files
    user-team/
    repositories/
    user-team.repository.ts
    user-team.module.ts

    在这种情况下,我可能会为每个多对多关系创建很多文件夹,这会给项目带来困惑和困惑。

  2. userteam 的一些模块中保留UserTeamRepository

    src/
    user/
    repositories/
    user-team.repository.ts
    // or
    team/
    repositories/
    user-team.repository.ts

    在这种情况下,我发现项目的理解存在问题。为什么我们将一种关系保存在一个文件夹中,而另一种我们决定以另一种方式保存。如何快速搜索这些关系。我认为新的开发人员会混淆在哪里找到需要的关系以及在哪里保持新的关系,因为在好的架构中应该毫无疑问在哪里保持新的类。

我愿意接受任何讨论和想法。提前感谢您的反馈!

最佳答案

令我感到奇怪的是,您决定拥有一个 UserTeamRepository

如果您需要一个方法 getAllUsersInTeam,它应该在 UserRepository 中,因为您正在请求用户。如果您需要方法 getAllTeamsBelongsToUser,它应该在 TeamRepository 中,因为您正在请求 Teams。

然后,这些方法中的每一个都负责加入您的中间表以完成其任务。

关于node.js - 多对多关系的正确文件夹结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67158919/

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