[2].ImageLibrary数据库设计
本程序只用了4个表:Images,Tags,Settings,SearchSQL
本程序图片管理主要按标签进行管理。每张图片有一个主标签和N个虚拟标签这种模式。
事先说一下,关于数据库字段的命名很纠结啊,刚开始是采用数据库名+功能这种方式,后来太长了
没有这么弄了…….
Tags:标签类 定义各种标签
TagID | 主键,自增 |
TagName | 标签名(对应磁盘文件名) |
TagShowName | 显示名称 |
IsMainTag | 是否是主标签 |
TagInfo | 备注 |
TagParentID | 父标签ID |
IsCanContainImage | 定义此标签是否能包含图片、是否能拖曳图片到此标签 |
Images:存放图片的表,一张图片对应一条记录
ImageID | ID,使用guid做主键 |
ImageName | 图片显示名称 |
ImageFileName | 图片的文件名(磁盘上的文件名) |
ImageMainTag | 图片主分类,称为主标签,只能有一个 |
ImageTags | 图片其他分类,称为虚拟标签,可以多个 |
ImageFileSize | 图片文件大小 |
ImageWidth | 图片宽 |
ImageHeight | 图片高 |
ImageHash | 图片Hash值,暂时不用 |
ImageLevel | 图片分级 |
ImageType | 图片类型(扩展名) |
ImageInfo | 备注 |
CreatedDate | 创建日期,暂时不用 |
ModifyedDate | 修改日期,暂时不用 |
ShootingDate | 拍摄日期,暂时不用 |
Settings:储存程序设置,只有2个字段,一个Key,一个Value
SearchSQL:这是后来想到的,通过执行SQL语句进行查询。
比如我定义一个“宽屏”,通过执行SQL而不是添加标签来得到图片,节省了添加虚拟标签的工作量
ID | 主键,自增 |
ShowName | 显示名称 |
Sql | SQL语句,其实就是条件、不含where这个单词 |
Info | 备注 |