我的要求是在历史记录页面中显示客户端的完整历史记录。
我们有以下表来维护客户端数据。
将来我们可能会添加更多的表来维护不同的数据。
让我们说,
客户历史记录如下
因此,历史页面应该按照日期对上述细节进行排序。历史将显示在一个更高的层次,它可以扩展到查看细节。
我的历史数据模型。
表:-历史记录(Id、名称、类型、SubType、日期)
历史上的样本数据,
1, 'Test Estimate', 'Estimate', 'Test', '01-01-2021'
2, 'Wellness Test', 'Test', 'Wellness', '01-02-2021'
3, 'Test Billing', 'Billing', 'Test', '01-02-2021'因此,历史页面将有按日期排序的数据,在单击每个项目的展开时,我们将根据Type从相应的表中获取详细信息,并显示详细信息。
是否有更好的MySQL数据模型?
发布于 2021-08-13 03:42:27
你可以从你的桌子上得到你需要的一切。您没有提供如何确定Subtype的详细信息,但是您可以将该逻辑放在子选择中。
SELECT
Type
,Name
,Date
FROM
(
SELECT
Client_Id
,'Estimate' AS Type
,Name
,Date
FROM
Estimate
UNION ALL
SELECT
Client_Id
,'Billing'
,Name
,Date
FROM
Billing
UNION ALL
SELECT
Client_Id
,'Test'
,PackageName
,Date
FROM
Test
UNION ALL
SELECT
Client_Id
,'Reminder'
,Name
,Date
FROM
Reminder
) ClientSummary
WHERE
Client_Id = 1
ORDER BY
Date
,Type
,Name如果MySQL不够聪明,无法将谓词Client_Id = 1推入子select中,那么在内部查询的每个select上都需要WHERE Client_Id = 1。
https://dba.stackexchange.com/questions/297995
复制相似问题