android數據庫裏的視頻,圖片,音頻表

數據庫模式分析

圖片數據庫

圖片數據庫由兩個表組成,分別是 images 和 thumbnails,物理數據模型以下所示(Power Designer 逆向工程生成)html

Note: 如何數據庫物理模型圖:<pk> 表示此爲主鍵。其他的表名、字段名、數據類型應該都能看明白。android

Note: SQLite 從 3.6.19 版纔開始支持外鍵約束,Android 2.3.3 使用的是 3.7.x,但並無使用此特性,而是經過操做數據庫的程序(如 MediaScanner)以及觸發器來維護數據庫的一致性。這裏能夠了解 SQLite 的外鍵支持狀況git

數據表字段解析以下:sql

images:圖片信息  數據庫

字段 解析
_id 主鍵。圖片 id,從 1 開始自增
_data 圖片絕對路徑
_size 文件大小,單位爲 byte
_display_name 文件名
mime_type 相似於 image/jpeg 的 MIME 類型
title 不帶擴展名的文件名
date_added 添加到數據庫的時間,單位秒
date_modified 文件最後修改時間,單位秒
description
picasa_id 用於 picasa 網絡相冊
isprivate
latitude 緯度,須要照片有 GPS 信息
longitude 經度,須要照片有 GPS 信息
datetaken 取自 EXIF 照片拍攝時間,若爲空則等於文件修改時間,單位毫秒
orientation 取自 EXIF 旋轉角度,在圖庫旋轉圖片也會改變此值
mini_thumb_magic 取小縮略圖時生成的一個隨機數,見 MediaThumbRequest
bucket_id 等於 path.toLowerCase.hashCode(),見 MediaProvider.computeBucketValues()
bucket_display_name 直接包含圖片的文件夾就是該圖片的 bucket,就是文件夾名

thumbnails:縮略圖  緩存

字段 解析
_id 主鍵。縮略圖 id,從 1 開始自增
_data 圖片絕對路徑
image_id 縮略圖所對應圖片的 id,依賴於 images 表 _id 字段,可創建外鍵
kind 縮略圖類型,1 是大縮略圖,2 基本不用,3 是微型縮略圖但其信息不保存在數據庫
width 縮略圖寬度
height 縮略圖高度

視頻數據庫

數據表字段解析以下:網絡

video:視頻信息  composer

字段 解析
_id 主鍵。視頻 id
_data 視頻絕對路徑
_display_name 文件名
_size 文件大小,單位爲 byte
mime_type 相似於 video/avi 的 MIME 類型
date_added 添加到數據庫的時間,單位秒
date_modified 文件最後修改時間,單位秒
title 不帶擴展名的文件名
duration 視頻時長,單位毫秒
artist 藝術家
album 專輯名,通常爲文件夾名
resolution
description
isprivate
tags
category
language
mini_thumb_data
latitude
longitude
datetaken
mini_thumb_magic 取小縮略圖時生成的一個隨機數,見 MediaThumbRequest
bucket_id 等於 path.toLowerCase.hashCode(),見 MediaProvider.computeBucketValues()
bucket_display_name 直接包含視頻的文件夾就是該圖片的 bucket,就是文件夾名
bookmark

videothumbnails:視頻縮略圖  數據庫設計

字段 解析
_id 主鍵。縮略圖 id
_data 縮略圖絕對路徑
video_id 縮略圖所對應視頻的 id,依賴於 video 表 _id 字段
kind 縮略圖類型,1 是大圖,視頻只能取類型 1
width 縮略圖寬度
height 縮略圖高度

音頻數據庫

音頻數據庫是最複雜的,由 10 個表組成。物理數據模型以下所示:ide

album_art:專輯封面  

字段 解析
album_id 主鍵。專輯 id
_data 專輯封面緩存的路徑

albums:專輯信息  

字段 解析
album_id 主鍵。專輯 id
album_key 全大寫字母,用於字母索引
album 專輯名

android_metadata:當前字符編碼  

字段 解析
locale 默認字符編碼,例如 zh_CN

artists:藝術家  

字段 解析
artist_id 主鍵。藝術家 id
artist_key 全大寫字母,用於字母索引
artist 藝術家

audio_genres:流派  

字段 解析
_id 主鍵。流派 id
name 流派名稱

audio_genres_map:音頻流派映射  

字段 解析
_id 主鍵。映射 id
audio_id 音頻 id
genre_id 流派 id

Note: 爲什麼要創建映射表:爲了消除數據冗餘。假若有大量音頻屬於同一流派,若是沒有映射表則須要每一個音頻都須要記錄一樣的流派數據,有了映射表以後則只有一條記錄就夠了。這符合數據庫設計的第三範式(the 3rd normal form)

audio_meta:音頻信息  

字段 解析
_id 主鍵。音頻 id
_data 文件絕對路徑
_display_name 文件名
_size 文件大小,單位 byte
mime_type 相似於 audio/mpeg 的 MIME 類型
date_added 添加到數據庫的時間,單位秒
date_modified 文件最後修改時間,單位秒
title 來自 ID3 信息的標題,無則爲不帶擴展名的文件名
title_key 全大寫字母的標題
duration 時長
artist_id 藝術家 id
composer 來自 ID3 信息,做曲家
album_id 專輯 id
track 來自 ID3 信息,音軌
year 來自 ID3 信息,年代
is_ringtone 是否鈴聲,0 或 1
is_music 是否音樂,1 纔會在音樂播放器顯示
is_alarm 是否鬧鐘鈴聲
is_notification 是否通知鈴聲
is_podcast 是否 podcast
bookmark

audio_playlists:播放列表  

字段 解析
_id 主鍵。播放列表 id
_data
name 播放列表名
date_added
date_modified

audio_playlists_map:音頻播放列表映射  

字段 解析
_id 主鍵。映射 id
audio_id 音頻 id
playlist_id 播放列表 id
play_order 播放順序
相關文章
相關標籤/搜索