保持API数据库表同步的“正确”方法

时间:2016-08-22 20:31:50

标签: node.js rest api express mongoose

这是我第一次创建应用程序独奏(后端,前端,设计),我可以在后端使用一些指导。

假设有一个import numpy as np import matplotlib.pyplot as plt data = np.loadtxt('fig3_1_tiltingRL.dat') x = data[:,0] y= data[:,1] #plt.xscale('log')#plt.set_xscale('log') coefs = np.polyfit(x, y, 10) ffit = np.polyval(coefs, x) new_x = np.linspace(0,26) new_ffit = np.polyval(coefs, new_x) plt.plot(x, y, 'o', label="Raw") plt.plot(x, ffit,'x',label="Fit to Raw") plt.plot(new_x, new_ffit,label="Fit to LinSpace") # This is ugly. I'd use list comprehension here! arr = np.linspace(0,26,20) new_y = [] for xi in arr: total = 0 for i,v in enumerate(coefs[::-1]): total += v*xi**i new_y.append(total) plt.plot(arr, new_y, '*', label="Polynomial") plt.legend(loc=2) plt.show() s,UserJob s(职位申请)表。现在我的结构如此:

Application

我当前的计划就像创建新的UserSchema { // other attributes _id: String, application_ids: [String] // array of String id's } JobSchema { // other attributes _id: String, application_ids: [String] } ApplicationSchema { // other attributes _id: String, applicant_id: String, // the _id of a User job_id: String // the _id of a Job } 时(通过Application发送用户的_id和作业的_id)然后我将应用程序的POST /api/applications设置为用户的_id然后更新用户的applicant_id数组以及作业的application_ids数组。

问题:我是否以合理的方式解决这个问题,或者我是否针对一个POST请求触摸了太多表格?我的应用程序中还有其他表/模式,它们遵循类似的关系结构。然后是删除应用程序,然后再次更新application_ids等问题,但这是另一回事。

注意:我正在使用Express.js和Mongoose.js,如果有帮助的话

1 个答案:

答案 0 :(得分:2)

不,你不应该这样做。通过在应用程序中存储用户和作业的ID,您可以使用查询来获取用户或所有应用程序的给定作业的所有应用程序。无需触摸两者。

如果你真的想要双方建立关系,至少要把它设置为ObjectId并使用“ref”声明。查看mongoose文档中的填充文档。