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

求教表的设计

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

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

相关文章:

你感兴趣的文章:

标签云: