Skip to main content

有生命周期的实体

在一些项目中,有些实体有生命周期的概念,最典型的如员工,有入职时间和离职时间,所以类似于:截至去年年底我们公司的员工数量是多少?以及近三年公司员工人数变化趋势等问题,是需要根据员工的入职时间和离职时间计算出来的。

本产品支持直接在实体表中加入生命周期的字段。从而在不需要做任何指标的情况下,自动计算出各种时间情况下的实体数量。对应的Schema模板如下:

{
"_id": "employee",
"name": "员工",
"type": "entity",
"properties": [
{
"name": "ID",
"type": "ID"
},
{
"name": "姓名",
"type": "name",
},
{
"name": "入职日期",
"type": "start_date"
},
{
"name": "离职日期",
"type": "end_date"
}
]
}

其中,靠两个类型来做到此功能:start_date,end_date。加上此两个类型后,系统便具备了在查询数量的时候,根据时间点判断真实数量的能力。例如提问最简单的员工人数,系统会生成以下SQL:

注:提问时间为2025-03-01

SELECT  '0' AS `_id`
,count(1) AS `人数量`
FROM employee WHERE
`入职日期` <= '2025-03-01 23:59:59' AND
(`离职日期` IS NULL) OR (`离职日期` >= '2025-03-01 23:59:59');