#define TABLE_MEMOS "memos"
#define TABLE_SOUNDS "sounds"
#define TABLE_IMAGES "images"
+#define TABLE_THUMBNAIL "thumbnail"
#define COLUMN_MEMO_ID "id"
#define COLUMN_MEMO_TEXT "text"
#define SOUND_TO_REMOVE "sound_to_remove"
#define SOUND_TO_SAVE "sound_to_save"
-#define COLUMN_THUMBNAIL_PATH "thumbnail_path"
#define COLUMN_THUMBNAIL_ID "thumbnail_id"
+#define COLUMN_THUMBNAIL_PATH "thumbnail_path"
+#define COLUMN_THUMBNAIL_INDEX "thumbnail_index"
+#define COLUMN_THUMBNAIL_MEMO_ID "thumbnail_memo_index"
#define COLUMN_IMAGE_ID "image_id"
#define COLUMN_IMAGE_PATH "image_path"
COLUMN_MEMO_TEXT " TEXT, "
COLUMN_MEMO_COLOR " INTEGER, "
COLUMN_MEMO_PINNED " INTEGER, "
- COLUMN_MEMO_TIME " INTEGER, "
- COLUMN_THUMBNAIL_PATH " TEXT DEFAULT '', "
- COLUMN_THUMBNAIL_ID " INTEGER DEFAULT -1); "
+ COLUMN_MEMO_TIME " INTEGER ); "
+
+ "CREATE TABLE " TABLE_THUMBNAIL "("
+ COLUMN_THUMBNAIL_ID " INTEGER PRIMARY KEY AUTOINCREMENT, "
+ COLUMN_THUMBNAIL_INDEX " INTEGER DEFAULT -1, "
+ COLUMN_THUMBNAIL_PATH " TEXT DEFAULT '', "
+ COLUMN_THUMBNAIL_MEMO_ID " INTEGER, "
+ "FOREIGN KEY(" COLUMN_THUMBNAIL_MEMO_ID ") REFERENCES " TABLE_MEMOS "(" COLUMN_MEMO_ID ") ON DELETE CASCADE );"
"CREATE TABLE " TABLE_IMAGES "("
COLUMN_IMAGE_ID " INTEGER PRIMARY KEY AUTOINCREMENT, "
COLUMN_MEMO_COLOR ", "
COLUMN_MEMO_PINNED ", "
COLUMN_MEMO_TIME ", "
- COLUMN_THUMBNAIL_PATH ", "
+ TABLE_THUMBNAIL "." COLUMN_THUMBNAIL_PATH ", "
TABLE_SOUNDS "." COLUMN_SOUND_PATH ", "
"GROUP_CONCAT((" COLUMN_IMAGE_INDEX " || '" IMAGE_PAIRS_SEPARATOR "' || " COLUMN_IMAGE_PATH "), '" IMAGE_POSITION_SEPARATOR "' ) AS " COLUMN_ALL_IMAGE_PATH
" FROM " TABLE_MEMOS
+ " LEFT JOIN " TABLE_THUMBNAIL
+ " ON " TABLE_THUMBNAIL "." COLUMN_THUMBNAIL_MEMO_ID " = " TABLE_MEMOS "." COLUMN_MEMO_ID
" LEFT JOIN " TABLE_IMAGES
" ON " TABLE_IMAGES "." COLUMN_IMAGE_MEMO_ID " = " TABLE_MEMOS "." COLUMN_MEMO_ID
" LEFT JOIN " TABLE_SOUNDS
COLUMN_MEMO_COLOR ", "
COLUMN_MEMO_PINNED ", "
COLUMN_MEMO_TIME ", "
- COLUMN_THUMBNAIL_PATH ", "
+ TABLE_THUMBNAIL "." COLUMN_THUMBNAIL_PATH ", "
TABLE_SOUNDS "." COLUMN_SOUND_PATH ", "
"GROUP_CONCAT((" COLUMN_IMAGE_INDEX " || '" IMAGE_PAIRS_SEPARATOR "' || " COLUMN_IMAGE_PATH "), '" IMAGE_POSITION_SEPARATOR "' ) AS " COLUMN_ALL_IMAGE_PATH
" FROM " TABLE_MEMOS
+ " LEFT JOIN " TABLE_THUMBNAIL
+ " ON " TABLE_THUMBNAIL "." COLUMN_THUMBNAIL_MEMO_ID " = " TABLE_MEMOS "." COLUMN_MEMO_ID
" LEFT JOIN " TABLE_IMAGES
" ON " TABLE_IMAGES "." COLUMN_IMAGE_MEMO_ID " = " TABLE_MEMOS "." COLUMN_MEMO_ID
" LEFT JOIN " TABLE_SOUNDS
" WHERE " COLUMN_SOUND_MEMO_ID " = ?";
const char selectThumbnailStmt[] = "SELECT "
- COLUMN_THUMBNAIL_PATH " FROM " TABLE_MEMOS
- " WHERE " COLUMN_MEMO_ID " = ?";
+ COLUMN_THUMBNAIL_PATH " FROM " TABLE_THUMBNAIL
+ " WHERE " COLUMN_THUMBNAIL_MEMO_ID " = ?";
const char selectImageByIndex[] = "SELECT "
COLUMN_IMAGE_PATH " FROM " TABLE_IMAGES
COLUMN_SOUND_PATH ", "
COLUMN_SOUND_MEMO_ID ") VALUES (?, ?);";
- const char insertThumbnail[] = "UPDATE " TABLE_MEMOS " SET "
- COLUMN_THUMBNAIL_PATH " = ?, "
- COLUMN_THUMBNAIL_ID " = ? "
- " WHERE " COLUMN_MEMO_ID " = ?;";
+ const char insertThumbnail[] = "INSERT INTO " TABLE_THUMBNAIL " ("
+ COLUMN_THUMBNAIL_PATH ", "
+ COLUMN_THUMBNAIL_INDEX ", "
+ COLUMN_THUMBNAIL_MEMO_ID ") VALUES (?, ?, ?);";
/************************** Delete statements *******************************/
const char deleteMemo[] = "DELETE FROM " TABLE_MEMOS