看一道SQL面试题: 看一道SQL面试题:要求存储gmail的日志,给定发信时间,发信人,收信人,要求设计数据库表,存储日志,并给出制定访问的SQL语句。如何设计日期时间、发信人、收信人的数据存储方式,节省数据库空间? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table gamillog(id int auto_increment primary key,send varchar(100),get varchar(100),rowdate timestamp default now()) 联系人表(ID INT auto_increment primary key,NAME VARCHAR(30))日志表(ID auto_increment primary key,SENDTIME timestamp default now(),SENDID,RECEIVEID) 一张表就可以了吧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 日志记录时间 日志表啊,不用讲究第三范式的,因为日志表通常很大,你要是join的话,会很消耗资源的啊。 时间看情况用varchar,记录几个字段就用几个字段发信人和收信人,就记录@前面的名字就行了,地址另外用一个字段记录 分区表有时不能打开的问题 比较同一表内数据差异 求助-如何将存储在sql server2000上的数据库转移到MySQL中 ? SQL语句 一台mysql down,能否自动切换另外一台mysql 根据不同的时间段判断一个字段有几条记录?请大家帮帮忙! 求示例数据库 菜鸟求助:如何设计每日业绩录入与查询的数据表?? JDBC连接数据库时计算机上必须装有相应的数据库软件吗? 使用 federated 引擎 连接 mycat 查询时断时续 postgres存储数据时,出现问题 怎么学习sql呀?推举几本书呗(零基础)
联系人表(ID INT auto_increment primary key,NAME VARCHAR(30))
日志表(ID auto_increment primary key,SENDTIME timestamp default now(),SENDID,RECEIVEID)
一张表就可以了吧
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 日志记录时间
日志表啊,不用讲究第三范式的,因为日志表通常很大,你要是join的话,会很消耗资源的啊。
发信人和收信人,就记录@前面的名字就行了,地址另外用一个字段记录