首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > Mysql >

求教表的设计,该如何处理

2012-04-26 
求教表的设计SQL codeCREATE TABLE `message` (`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,`tex

求教表的设计

SQL code
CREATE TABLE `message` (  `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,  `text` varchar(250) DEFAULT NULL,  `uname` varchar(32) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8

这是一个类似微薄的消息表:
`uname`说了一句话`text`

现在考虑的问题是用户名uname可能会改变,那么表中所有该用户的`uname`就必须跟着改变,担心更新的效率。
我想到存一个uid,它并不会变。但这样就还需要根据uid再查到uname,更加麻烦

这种情况通常大家是怎么做的?

[解决办法]
探讨

`message`:去掉unam
增加1个对照表(username)


uid uname
再连接查询

[解决办法]
大致写一下
CREATE TABLE `message` (
`id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
uid int NOT NULL ,
`text` varchar(250) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

CREATE TABLE `username` (uid int NOT NULL ,uname varchar(250),PRIMARY KEY (`uid`))

select * from `message` a inner join 
`username` b on a.uid=b.uid

热点排行