在学校做项目有一个网络硬盘的功能,但不知道数据库怎么建?在网上搜索了n久还是一头雾水。
其中有一个数据库是这样设计的,三张表。t_users,t_files,t_directories。
CREATE TABLE IF NOT EXISTS disk.t_users (
user varchar(20) NOT NULL,
password_md5 varchar(50) NOT NULL,
xm varchar(10) default NULL,
email varchar(20) default NULL,
phone varchar(20) default NULL,
qq varchar(12) default NULL,
PRIMARY KEY (user)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS disk.t_files (
id int(11) NOT NULL auto_increment,
user varchar(20) NOT NULL,
file varchar(255) NOT NULL,
path varchar(255) NOT NULL,size bigint(11) NOT NULL,
upload_time datetime NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY file (file,path)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;CREATE TABLE IF NOT EXISTS disk.t_directories (
id int(11) NOT NULL auto_increment,
user varchar(20) NOT NULL,
path varchar(255) NOT NULL,
parent_path varchar(255) NOT NULL,
dir varchar(20) NOT NULL,create_time datetime NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY user (user,path)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
红色的部分不是很清楚,请教大家是什么意思?
其中有一个数据库是这样设计的,三张表。t_users,t_files,t_directories。
CREATE TABLE IF NOT EXISTS disk.t_users (
user varchar(20) NOT NULL,
password_md5 varchar(50) NOT NULL,
xm varchar(10) default NULL,
email varchar(20) default NULL,
phone varchar(20) default NULL,
qq varchar(12) default NULL,
PRIMARY KEY (user)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE IF NOT EXISTS disk.t_files (
id int(11) NOT NULL auto_increment,
user varchar(20) NOT NULL,
file varchar(255) NOT NULL,
path varchar(255) NOT NULL,size bigint(11) NOT NULL,
upload_time datetime NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY file (file,path)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;CREATE TABLE IF NOT EXISTS disk.t_directories (
id int(11) NOT NULL auto_increment,
user varchar(20) NOT NULL,
path varchar(255) NOT NULL,
parent_path varchar(255) NOT NULL,
dir varchar(20) NOT NULL,create_time datetime NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY user (user,path)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
红色的部分不是很清楚,请教大家是什么意思?
解决方案 »
- 急!mysql 版本太低,数据全都烂掉了。乱码的问号(V4.1.20)
- mysql按时间字段进行分区 ,后跨分区查询问题请教
- mysql视图问题
- mysql 中如何创建表与表之间的关系??
- 请问怎么样将含有制表符“\”的文本文件导入到mysql中去?
- 50份请问:EMS MySQL Manager 1.9.2.2 的注册码和汉化文件!谢谢!
- 请教:第三方工具导入脚本乱码的问题。
- mysql update 本表, 通过查询,更本表数据应该怎么写
- 关于数据库引擎不一致时导入的问题
- workbench导入csv失败,line1 语法错误
- mysql 连续查询失败
- MySQL Administrator Error 工具报错
parent_path varchar(255) NOT NULL,
dir varchar(20) NOT NULL从数据库角度看,这不过是三个字段的定义。如果猜测一下的话。 分别是
目录名
父目录名
目录
至于具体为什么设置这些字段,则要看实际的应用了。不了解应用的情况下别人只能靠猜来分析。
父目录名
目录应该有层次的包含关系,第二张表的path 应该是第三张表的外键。
目录名与目录什么区别,
比如:C:\Program Files\Adobe\Reader 9.0 下有个readme文件。
此目录的目录名,父目录名,目录分别什么?
比如:C:\Program Files\Adobe\Reader 9.0 下有个readme文件。
此目录的目录名,父目录名,目录分别什么?
目录名readme
父目录名C:\Program Files\Adobe\Reader 9.0