我希望在我的 django 项目中使用 date-fns,但不完全确定如何继续 - 我不能依赖 CDN,需要以某种方式安装它。我已经npm init在我的根文件夹中运行,然后是npm install date-fns. 这生成了一个node_modules文件夹和一个package.json文件。
不完全确定此后如何继续。有哪些必要的步骤?
我只是使用
<script src="{% static 'node_modules/date-fns' %}"></script>
Run Code Online (Sandbox Code Playgroud)
在我的 base.html 文件中?
我得到以下数据模型:https : //imgur.com/a/AwwpW9F
基本上, AUser可以属于 many Projects,而 aProject可以有 many Users,我通过一个名为的连接表将它们捆绑在一起UserProjects
使用原始 SQL 查询,我可以去
SELECT "user".email, project.name FROM "user"
JOIN userprojects ON userprojects.user_id = "user".id
JOIN project ON project.id = userprojects.project_id
Run Code Online (Sandbox Code Playgroud)
这给了我
email(On User table) name(On Project table)
first@email.com Project X
first@email.com Project Y
second@email Project Y
Run Code Online (Sandbox Code Playgroud)
我将如何使用 Objection ORM 构建此查询?也许我可以直接做一个原始查询?就像是
User.query().raw(SELECT "user".email, project.name FROM "user"
JOIN userprojects ON userprojects.user_id = "user".id
JOIN project ON project.id = userprojects.project_id)
Run Code Online (Sandbox Code Playgroud)
?
我的 Postgres 数据库中有一个表,如下所示:
date duration
2018-05-10 10
2018-05-12 15
2018-06-01 10
2018-06-02 20
2019-01-01 5
2019-01-02 15
2019-04-01 10
Run Code Online (Sandbox Code Playgroud)
我希望将每个月的值相加,并按年、月和月号将它们分组,如下所示:
year month month_number monthly_sum
2018 May 5 25
2018 June 6 30
2019 Jan 1 20
2019 Apr 4 10
Run Code Online (Sandbox Code Playgroud)
最终得到如下所示的查询:
SELECT
to_char(date_trunc('month', date), 'YYYY') AS year,
to_char(date_trunc('month', date), 'Mon') AS month,
to_char(date_trunc('month', date), 'MM') AS month_number,
sum(duration) AS monthly_sum
FROM timesheet
GROUP BY year, month, month_number
Run Code Online (Sandbox Code Playgroud)
它工作得很好,我的问题是:这个查询被认为是坏的吗?如果我有大约 100k 行,它会影响性能吗?我听说使用 to_char 不如 date_trunc,这是我在这里试图避免的,我只是将 date_trunc 包装在 to_char 中。另外,一个子句中有三个值GROUP BY,会产生什么影响吗?