我的意思是用户的个人信息,会不会为他单独建一张表比较好呢?
例如用户可以自定义标签的话,先在user表里面存在id=1的用户,
现在用户要自定义标签,我是不是可以针对他创建一个tags表呢?
还是所有用户的所有自定义标签,都存在一个tags表里面,然后在tags里面设置uid字段,从而联系用户与标签?前一种方法,实际会这么做吗?真的存在这样的情况吗?
后一张方法,会不会造成查询用户对应的自定义标签是速度慢?

解决方案 »

  1.   

    楼主可以把两种设计均用 create table ... 写出来,然后再写出需要对应的各自查询,插入语句。这样方便比较。
    空泛的讨论的话,只能说两种方式均有人使用过,在不同的应用场景。
      

  2.   

    用户表:create table user(id int primary key auto_increment, username varchar(255),password char(32)) ;
    insert into user(username,password) values("admin",md5("admin"));
    insert into user(username,password) values("guest",md5("guest"));
    下面建立标签表
    第一种方法:
    //为第一个用户单独建立标签表
    create table 1_tags(id int rimary key auto_increment, tagname varchar(255));
    //为第二个用户单独建立标签表
    create table 2_tags(id int rimary key auto_increment, tagname varchar(255));//插入数据
    insert into 1_tags(tagname) values("测试");//查询的时候
    只要查询第一个用户的tags表就可以查到他所有创建的标签了第二种方法:
    create table tags(id int rimary key auto_increment, tagname varchar(255));//创建用户,标签关联表
    create user_tag(uid int, tagid int);说到这里大家懂我的意思了吗?
    大家做项目的时候,是用哪种方法?
    可能我这样说还是比较空泛。。谁能给我点参考意见,多谢