我与用户和组之间有很多关系:组可能包含很少的用户,并且由多个组组成。 服务器将这样的json发送给我,我需要将其存储到DB:
SELECT * FROM user WHERE id IN (:user_ids)
问题是:用户在组事务中的顺序-用户的显示顺序应与服务器json中的显示顺序相同。
我使用的拳头解决方案是添加到组字段中
homework = forms.FloatField(required=False, widget=forms.TextInput(
attrs={'type': 'number','id':'form_homework','min': '0','max':'10','step':'0.01'}))
并将其从atat存储到json中的DB中,但是在此解决方案中我看到2个问题:
Map<String, String>
如何将其存储到DB和SELECT中?
答案 0 :(得分:1)
在SQL中,表行确实是无序的;获得有序行的唯一保证方法是使用ORDER BY。
如果数组元素的顺序很重要,请为数组索引添加一列。
答案 1 :(得分:0)
您可以使用以下架构:
CREATE TABLE user(id integer primary key, name text);
CREATE TABLE grp(id integer primary key, name text);
CREATE TABLE usergrp(userid integer, grpid integer, position integer);
CREATE INDEX positionindex on usergrp(grpid, position);
然后您可以通过查询检索属于某个组的用户
SELECT userid FROM usergrp WHERE grpid=? ORDER BY position;
此外,也许您想为usergrp使用"without rowid" sqlite表存储选项。