android短彩信数据库设计源码解析(一)
维护短彩信很长时间了,终于想写点什么了,那就从数据库开始吧!不当之处,欢迎指正。
关于LEFT_JOIN,INNER_JOIN等数据库知识,大家可以访问W3SCHOOL。
MmsSmsDatabaseHelper.java
1、首先看一下私有静态常量。这些静态常量在构建数据库触发器,构建数据表时会用到。
private static final String PDU_UPDATE_THREADS_ON_UPDATE_TRIGGER = "CREATE TRIGGER update_threads_on_update_pdu " + " AFTER UPDATE of thread_id ON pdu " + " BEGIN " + " UPDATE threads SET has_attachment=1 WHERE _id IN " + " (SELECT pdu.thread_id FROM part JOIN pdu " + " WHERE part.ct != 'text/plain' AND part.ct != 'application/smil' " + " AND part.mid = pdu._id);" + " END";创建一个触发器,在更新了pdu数据表内的thread_id字段,开始更新thread数据表,设置has_attchment字段等于1,并且特定的thread_id存在,这个特定thread_id来自于更新的pdu表行中的_id所对应的thread_id.
这是数据库设计会用的静态常量字符串,后面会介绍数据库创建等。