在学校做项目有一个网络硬盘的功能,但不知道数据库怎么建?在网上搜索了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;
红色的部分不是很清楚,请教大家是什么意思?

解决方案 »

  1.   

    path varchar(255) NOT NULL,
    parent_path varchar(255) NOT NULL,
    dir varchar(20) NOT NULL
    从数据库角度看,这不过是三个字段的定义。如果猜测一下的话。 分别是 
    目录名
    父目录名
    目录

    至于具体为什么设置这些字段,则要看实际的应用了。不了解应用的情况下别人只能靠猜来分析。
      

  2.   

    目录名
    父目录名
    目录应该有层次的包含关系,第二张表的path 应该是第三张表的外键。
      

  3.   


    目录名与目录什么区别,
    比如:C:\Program Files\Adobe\Reader 9.0 下有个readme文件。
    此目录的目录名,父目录名,目录分别什么?
      

  4.   

    目录名与目录什么区别,
    比如:C:\Program Files\Adobe\Reader 9.0 下有个readme文件。
    此目录的目录名,父目录名,目录分别什么?
    目录名readme
    父目录名C:\Program Files\Adobe\Reader 9.0