看一道SQL面试题:
要求存储gmail的日志,给定发信时间,发信人,收信人,要求设计数据库表,存储
日志,并给出制定访问的SQL语句。如何设计日期时间、发信人、收信人的数据存储方式,节省数据库空间?

解决方案 »

  1.   

    create table gamillog(id int auto_increment primary key,send varchar(100),get varchar(100),rowdate timestamp default now())
      

  2.   


    联系人表(ID INT auto_increment primary key,NAME VARCHAR(30))
    日志表(ID auto_increment primary key,SENDTIME timestamp default now(),SENDID,RECEIVEID)
      

  3.   


    一张表就可以了吧
    create table gamil_log(id int auto_increment primary key,sender varchar(32),addressee varchar(32),send_time timestamp default CURRENT_TIMESTAMP,insert_time date);其中id自增主键
    sender 发信人
    addressee 收信人
    send_time 发送时间
    insert_time 日志记录时间
      

  4.   


    日志表啊,不用讲究第三范式的,因为日志表通常很大,你要是join的话,会很消耗资源的啊。
      

  5.   

    时间看情况用varchar,记录几个字段就用几个字段
    发信人和收信人,就记录@前面的名字就行了,地址另外用一个字段记录