Node.js 当数据库表被链接并且我需要查询这两个表时,如何在MVC中设计模型?(Nodejs,PostgreSQL)

Node.js 当数据库表被链接并且我需要查询这两个表时,如何在MVC中设计模型?(Nodejs,PostgreSQL),node.js,postgresql,model-view-controller,design-patterns,Node.js,Postgresql,Model View Controller,Design Patterns,我目前很难理解MVC设计模式以及如何构建模型。据我所知,MVC中的模型文件是如何与数据库交互并从中检索信息,其中一个模型文件相当于一个数据库表,例如,我的PostgreSQL数据库中的User表将与我的project/model/文件夹中的User.js文件相关联,其中User.js将包含与模型关联的类及其方法,如findAll,findById等函数 例如,假设我有两个表:customer和purchase,这样: 客户: | customer_id (PRIMARY KEY) | custo

我目前很难理解MVC设计模式以及如何构建模型。据我所知,MVC中的模型文件是如何与数据库交互并从中检索信息,其中一个模型文件相当于一个数据库表,例如,我的PostgreSQL数据库中的
User
表将与我的
project/model/
文件夹中的
User.js
文件相关联,其中
User.js
将包含与模型关联的类及其方法,如
findAll
findById
等函数

例如,假设我有两个表:
customer
purchase
,这样:

客户

| customer_id (PRIMARY KEY) | customer_name | customer_email |
| --------------------------| --------------| ---------------|
| 1                         | John          | john@j         |
| 2                         | Ben           | ben@b          |
购买

| purchase_id (PRIMARY KEY) | purchase_item     | purchase_outstanding | purchase_customer_id (FOREIGN KEY) |
| ------------------------- | ------------------| -------------------- | ---------------------------------- |
| 10                        | Mercedes S-Class  | 999                  | 2 |
| 11                        | Volkswagen Golf   | 21398                | 1 |
| 12                        | Volkswagen Beetle | 9812                 | 1 |
| 13                        | Ford Fiesta       | 3921                 | 2 |
| 14                        | Ford Ranger       | 1000                 | 2 |
我的问题是:

SELECT purchase.purchase_id, purchase.purchase_oustanding, customer.customer_name
FROM purchase
INNER JOIN customer
ON purchase.purchase_customer_id = customer.customer_id
ORDER BY purchase.purchase_outstanding DESC;
我的问题是:

  • 我见过的几乎所有MVC示例都使用只查询一个表的方法,例如
    purchase.js
    文件中的
    findAll()
    函数,它查询
    purchase
    表中的所有行。对于一个模型来说,如果有一个方法能够查询它自己的表以外的其他表,比如上面的查询,这是一个糟糕的设计吗
  • 仅为上述查询在我的
    purchase.js
    文件中创建一个方法/函数(如
    findOutstandingDesc()
    )是否设计糟糕?还是将其他模型中定义的方法链接起来更好
  • 我是否必须将表模式定义为模型文件中的类(例如,拥有一个带有属性的Purchase类,如Purchase\u id、Purchase\u item等),或者我可以在文件中创建一组函数并从中导出它们
  • 谢谢大家!