我正在访问一个API,其中字段的数量可以随时更改,但我必须将数据存储并显示为表格。因此,API中的每条记录都存储为每个字段的单个记录。我的问题是我无法弄清楚如何一次按多列排序。在排序之前将所有数据放入2D数组(列表列表)不是一个可行的选择,因为记录的数量可能太大而无法在内存中保存。
我已经汇总了一个简单的例子来解释。如果有人知道如何克服这个问题,或者我如何重新设计我的方法,我将非常感激。
| record_id | field | data |
| 1 | x | 2 |
| 1 | y | 1 |
| 1 | z | 3 |
| 2 | x | 30 |
| 2 | y | 42 |
| 2 | z | 7 |
| 3 | x | 53 |
| 3 | y | 2 |
| 3 | z | 7 |
如果按字段排序' z'然后' x' (均为升序),记录顺序为1,2,3
如果按字段排序' z'然后' y' (均为升序),记录顺序为1,3,2
我在django中使用模型来存储,我使用QuerySets来检索数据。我无法控制我最初访问数据的API或数据库。
答案 0 :(得分:0)
经过大量的研究后,我意识到我正在解决这个问题 - 我现在正在postgres和django-hstore中使用hstore字段来利用它,以实现无模式方法。我现在每个原始记录有一行,我可以在'额外'方法中转换必填字段后命令。