表結構設計
-- 用戶表
CREATE TABLE user (
id INTEGER PRIMARY KEY AUTOINCREMENT,
username TEXT UNIQUE,
password TEXT
);
-- 日記表
CREATE TABLE note (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_id INTEGER, -- 外鍵關聯用戶
notename TEXT,
notecontent TEXT,
date TEXT,
FOREIGN KEY(user_id) REFERENCES user(id)
);
業務流程
- 登錄成功:將
user_id 存入 SharedPreferences 或單例 UserSession。
- 新建日記:
INSERT INTO note (user_id, ...) VALUES (?, ...) 參數綁定當前 user_id。
- 列表查詢:
SELECT * FROM note WHERE user_id = ? ORDER BY date DESC,僅返回當前用戶數據。
進階建議
- 啟用
PRAGMA foreign_keys = ON; 保證引用完整性。
- 使用 Room 持久化庫,定義
@Entity、@Dao、@Database,編譯期檢查 SQL,自動生成 LiveData/RxJava 流。
- 敏感內容考慮 SQLCipher 加密數據庫。