请教一个数据库设计的问题
我在学习igoogle网站的制作,不知道大家用过没有
igoogle页面可以定制很多小窗口,每个小窗口有自己的位置信息和一些参数,
igoogle对于匿名用户跟注册用户都会记录用户操作小窗口的信息,如果要把这些信息放在数据库要如何设计我一开始想用一张表存放每个用户自己的小窗口信息,但有个问题
如果网站一共有100个小窗口,用户注册数有1w就会产生100w的记录,貌似有点多了,还没考虑匿名用户对于这个问题想好几天了,不知道大家有什么看法

解决方案 »

  1.   

    用户有多少就有多少条,不会多。设个字段为用户配置字段。字段内容以格式化存储配置信息,比如json, xml等格式, 例如xml格式举例的话:
    ...
    <windows>
       <window id="1" type="news"> //窗口id, 窗口类型等等基本信息
           <title>xxx</title> //标题
           <position top="" left="" width="" height="" /> //位置, 宽高
           ....
       </window>
       ....
    </windows>读取此用户配置信息后,利用xsl直接生成相关HTML代码。如果此用户没有窗口配置信息,则读取服务器默认配置。
    ...修改时, 因上述字段存储的是格式化的信息,很容易修改。
      

  2.   

    1、
    表结构:
    用户id,窗口,参数,用户类型
    2、
    另外还可以把注册用户和匿名用户分开,即分别存储在两张表上,注册用户表:用户id,窗口,参数(在用户id、窗口上建立索引)
    匿名用户表:ip(?),窗口,参数  (在窗口上建立索引)
      

  3.   

    先谢谢楼上2位.
    xie_yanke的意思不是很明白,把所有小窗口的配置信息存到一个记录里面?我主要疑惑的是如果我提供给用户的小窗口有100个的话,那么1w个注册用户有100w条记录,10w注册用户就有100w记录,像google上百万注册用户那一张表1000w的记录,如果就简单存到一张表里,查找起来不会效率很低吗?
      

  4.   

    再仔细看了下google的url
    位置信息就有一行发给服务器端得
    mp:24_1:50_1:53_1:56_1:54_1:29_1:47_1:23_1:51_1:10_1:48_1:13_1:44_1:31_1:46_2:26_2:30_2:49_2:_opt_3:52_3:55_3但问题是每个小窗口还有标题名,颜色等信息可以用户制定,这个总要一条记录才能保存吧
      

  5.   

    如果你采用SQL 2005, 有新增XML字段,则从数据库提取XML字段中XML片段相当容易。否则,你可以在其登录之时,将其配置信息完全读取, 以Session或临时文件形式提供配置引擎。
    另外,如果是XML,不需要查找, 因为XSLT负责在读取出来时,将XML数据直接解读为相关HTML代码。当然,以Json串或者其他自定义串写入也可。因为其配置内容不需要复杂的查寻。只不过是读写功能罢了。