开发Android应用程序时不同SQLite方法的好处

时间:2016-08-21 10:30:35

标签: java android sqlite database-design

在处理要插入SQLite数据库的数据时,最好的方法是什么:

1.在数据库本身内写入尽可能多的复杂TRIGGERS代码 2.在TEMPORARY TABLES中动态创建Java和类似解决方案 3.几乎完全用Java处理原始CRUD语句来处理数据库?

我真的没有任何真正的代码可供分享,因为我在构思时,但最好的方法是强制执行FOREIGN KEYS(即删除不再有的行)引用表中的连接值);含TRIGGERSJava?另一个例子:使用Java方法length()代替以下TRIGGER会更好吗?

CREATE TABLE table ( column1 TEXT, column2 INTEGER );
CREATE TRIGGER tableTrigger INSERT ON table BEGIN INSERT INTO table VALUES ( NEW.column1 , LENGTH ( NEW.column1 ));

(注意:这些都是非常简单的例子,而我最终的TRIGGERS会更复杂,因此我对一般方法或适用的经验法则感兴趣。)

1 个答案:

答案 0 :(得分:0)

这实际上取决于您尝试强制执行的具体约束。

对于您的第一个示例,无需编写触发器来强制执行外键关系。 SQLite将在您定义列时为您添加此约束,方法是添加“ON DELETE CASCADE”(在此处阅读更多内容:https://www.sqlite.org/foreignkeys.html)。

我倾向于在应用程序代码本身中编写逻辑,因为这比数据库触发器更容易调试。

https://softwareengineering.stackexchange.com/questions/123074/sql-triggers-and-when-or-when-not-to-use-them