新闻发布数据库设计(二级分类,三个表格):
Bigclass :  
 BigclassID (uniqueident)  primary key
 BigclassName (varchar(50))
SmallClass:
 SmallClassID(uniqueident) primary key
 SmallClassName (varchar(50))
 BigClassID  (uniqueident)
      foreign  key  references  BigClass(BigClassID)  
Article:
 ArticleID (uniqueident)  primary key
 ArticleID (varchar(50))
 BigClassID  (uniqueident)
 SmallClassID(uniqueident)   
  foreign  key  references  SmallClass(SmallClassID) 
问题:
 1、ID的数据类型是uniqueident还是bigint(自动增加),分别用于什么情况?
   我只知道uniqueident占用字节数16,开销大,bigint占用字节数8,uniqueident用于多个表的数据合并比较好
 2、是否设置 ID(uniqueident)为主键,除了防止重复外,还有其它意义吗?
 3、外键设置是否准确、得当?是否有必要?谢谢,希望大家认真回答,有相关的文章参考也很好。

解决方案 »

  1.   

    新闻类别做一个表: 
    类别id, 类别名,类别fatherid 
    新闻内容做一个表 
    新闻id,新闻类别大类id,新闻类别小类id,新闻标题,新闻内容 这要做下来不就明白了,类别id一定要用数字,不要用名字...难道你起的名字一定不会有改动吗???
      

  2.   

    1、UNIQUEIDENTIFIER是做大数据库,分布式等等用的,为的是保证多个数据库表的唯一性,一个新闻发布数据库基本用不到
    2、索引啊,便于遍历,提高性能……
    3、简单主从表,基本可以
      

  3.   

    1 采用uniqueidentifier 可以用于数据合并、分布、交换等各种场合,可以由客户端生成并存储,避免了像identity一样需要多一次读取操作,但它的缺点是不易读,存储和性能都不如int型。2 索引 提高查询速度3 个人觉得无所谓 用与不用都成