我对Java还是很陌生,所以请原谅我犯的任何错误。
我目前正在开发一个自动的TODO列表应用程序,该应用程序对用户输入的任务列表进行排序,并对优先级更高的任务进行优先级排序。
用户添加任务后,它将被添加到 SQLite数据库。我想知道如何将整数与每个单独的任务关联。
例如: 假设有一个名为 Priority 的整数,其默认值为 10 。添加的每个任务都以默认值 Priority = 10开头,但会根据用户需求进行更改。
因此,如果一个任务的默认值为 Priority = 10,则 Priority 可以增加11,而同一列表中以 Priority 开始的另一个任务> = 10可能会降低为 Priority =9。我不确定如何使添加到数据库中的每个任务都具有定期更改的单个值。
如果您希望我进一步扩展,我会很高兴,因为我的解释可能会造成混淆。
谢谢!
答案 0 :(得分:0)
您也许可以使用TRIGGER SQL As Understood By SQLite - CREATE TRIGGER
例如,考虑以下内容:-
DROP TABLE IF EXISTS tasks;
CREATE TABLE IF NOT EXISTS tasks (ID INTEGER PRIMARY KEY, name TEXT, user_reference INTEGER, priority DEFAULT 10);
DROP TRIGGER IF EXISTS set_task_priority;
-- Create the Trigger
CREATE TRIGGER IF NOT EXISTS set_task_priority
AFTER INSERT ON tasks
WHEN ((SELECT count() FROM tasks WHERE user_reference = new.user_reference) > 3)
BEGIN
UPDATE tasks SET priority = new.priority + (SELECT count() FROM tasks WHERE user_reference = new.user_reference)
WHERE ID = new.ID
;
END;
-- Add some data to test the trigger
INSERT INTO tasks (user_reference,name) VALUES
(1,'CLEAN'),(1,'TIDY'),(1,'VACUMN'),(1,'WASH'),(1,'THINK'),
(2,'CLEAN'),(2,'TIDY'),(2,'VACUMN'),(2,'WASH'),
(3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY'),
(3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY'),
(3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY'),
(3,'CLEAN'),(3,'TIDY'),(3,'VACUMN'),(3,'WASH'),(3,'THINK'),(3,'STUDY')
;
INSERT INTO tasks (user_reference,name) VALUES (3,'SLEEP');
SELECT * FROM tasks;
以下结果为:-
您说
我想知道如何将整数与每个人相关联 任务。
上面的每个任务都有自己唯一的整数, rowid ID,或者在上面的ID中作为 rowid 的别名。 Rowid Tables。
也许甚至是:-
CREATE TABLE IF NOT EXISTS tasks (ID INTEGER PRIMARY KEY, name TEXT, user_reference INTEGER, priority DEFAULT (ABS(random() % 100)));