笔记:小项目特殊数据表

0、提要
一个简单的笔记,SQL 是在写文章时一起写的,未做验证;
另外,仅提供一个思路而已,这样简单的策略可以用于小项目,至于大项目还在学习中。
谢谢!

  1. 独立数据关联字典表 key-value
  2. 独立附件存储信息表 id-path
  3. 唯一序号简单发号表 id

1、独立数据关联字典表 key-value
在项目中存在大量 select/checkbox/radio 等选项内容,可通过此表建立一套对照关系的字典,并将其缓存下来后,使用非常方便。

表结构:

create table if not exists pre_dict(
    id int unsigned not null auto_increment comment '自增ID',
    group char(20) not null default '' comment '关联组',
    key char(20) not null default '' comment '关联键',
    value varchar(100) not null default '' comment '关联值',
    primary key (id),
    unique key group_key_id (group,key)
)engine=InnoDB default charset=utf8 comment '独立数据关联字典表';

2、独立附件存储信息表  id-path
将项目中上传文件部分单独提取出来,附件数据表不管编辑/添加数据时只增加(定期清理),然后将产生的 id 做为外键与数据一赽存储,可做成独立附件模块。

表结构:

create table if not exists pre_attachment(
    id int unsigned not null auto_increment comment '自增ID',
    path varchar(255) not null default '' comment '附件路径',
    desc varchar(100) not null default '' comment '描述',
    disabled tinyint unsigned not null default '0' comment '状态: 0 正常 1 禁止',
    createuser varchar(30) not null default '' comment '创建者',
    createtime int unsigned not null default '0' comment '创建时间',
    primary key(id)
)engine=InnoDB default charset=utf8 comment '附件信息表';

3、唯一序号简单发号表 id
设计一个简单的发号机,利用数据库的 auto_increment 属性,将该表设置好步长、起始基数后,每 insert 一次即可返回一个 id,且其为唯一。

create table if not exists pre_seqnum(
    id int unsigned not null auto_increment comment '自增唯一ID',
    createtime int unsigned not null default '0' comment '创建时间',
    primary key(id)
)engine=InnoDB default charset=utf8 auto_increment=10000 comment '简单唯一发号机';

持续更新笔记。

《笔记:小项目特殊数据表》有0个想法

强强强~~,太好了,谢谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注