Pie*_*che 5 javascript mysql database bookshelf.js knex.js
好吧,我正在开发一个个人项目,您可以用它来制作“观看”列表。用户可以使用公共 API (TheMovieDB) 查找他们听说过的好电影,并将其添加到他们的观看列表中。每当添加电影时,我都会将数据保存到数据库中。我使用下表(不包括与问题无关的列):
用户
电影
电影用户
流派
流派_电影
我选择了 MariaDB,因为我想要 ON DUPLICATE KEY UPDATE 功能,因为我在这个数据库中没有任何原始数据,所以例如当有人想将一部电影添加到他们的数据库中,但我数据库中已经有这部电影时,我只想在 movie_users 表中添加一个新行。同时,当涉及到流派时,我也会使用该功能。
就语言而言,我将 NodeJS 与 BookshelfJS 一起使用。
现在我根本不是 SQL 方面的专家,所以我不确定我的工作方式是否是最佳的。此外,我对 Promise 不太熟悉。这是我在将电影添加到数据库时使用的代码: http: //codeshare.io/BPWDV。
我使用交易是因为我认为这是最安全的方式?我还必须使用 knex.raw ( http://knexjs.org/#Raw-Queries ),这样我就可以使用 ON DUPLICATE KEY UPDATE。基本上这是发生的事情:
就我个人而言,这看起来是完成这样的事情的一种可怕的方式,所以我觉得我一定做错了。整个承诺链看起来也感觉很尴尬。它有效,但我认为还有更好的方法吗?
我还计划使用 actor 表和 actor_movies 表,但我不知道如何将其放入其中(以及整个 Promise.map 事物)。
所以最终,我的问题是:如果代码是正确的,我该如何清理代码,或者如果代码根本不是最优的,那么完成我打算做的事情的更好方法是什么?
| 归档时间: |
|
| 查看次数: |
965 次 |
| 最近记录: |