首先要感谢一下blogs,从这里学到了不少东西:-)我学.NET不久,程序生涯也就是从.NET开始,想学好它:)
下面就问我的问题,非常的疑惑和不解,希望能得到大家的解答:)THANKS A LOT

数据库设计问题/程序设计问题

关系总感觉理的不是很清楚,打个比方:有两个表 Type和Product,Type表中有两个字段TypeID,TypeName.
Product表中有三个字段ProductID,ProductName,TypeID(为Type表的外键).这样设计两个表我觉得比较合理(关系型嘛).
然后和数据库对应有两个entryClass分别为
public class Type
{
   private int _TypeID = 0;
   private string _TypeName = string.Empty;
   public int TypeID
 {
    get
    {
       return _TypeID;
    }
   set
  {
   _TypeID = value;
  }
 }
 public string TypeName
 {
  get
  {
   return _TypeName;
  }
  set
  {
   _TypeName = value;
  }
 }
}

public class Product
{
 private int _ProductID = 0;
 private string _ProductName = string.Empty;
 private int _TypeID;

 public int ProductID
 {
  get
  {
   return _ProductID;
  }
  set
  {
   _ProductID = value;
  }
 }
 public string ProductName
 {
  get
  {
   return _ProductName;
  }
  set
  {
   _ProductName = value;
  }
 }
 public int TypeID
 {
  get
  {
   return _TypeID;
  }
  set
  {
   _TypeID = value;
  }
 }

//后因为数据显示问题,又在实体里面添了这样一个字段
 private string _TypeName;               //
 public string TypeName                  //
 {                                       //
  get                                 //
  {                                   //
   return _TypeName;               //
  }                                   //
  set                                 //
  {                                   //
   _TypeName = value;              //
  }                                   //
 }                                       //
//////////////////////////////////////////////

}
对两个表程序中也有相应的GURD,但是在页面显示中总会有多表字段的显示啊,比如:要同时显示TypeName,ProdcutName.那不就要多表查询了吗?
可能会有这样的操作"SELECT * FROM [Type],[Product] WHERE Type.TypeID=Product.TypeID ProductID=***",并且返回的结果就是填充EntryClass,
但是我的问题又来了,EntryClass里面没有这么多字段可以填啦,那我又回去改Product类了...改了,嗯,程序又可以用了:),但是我的心里就是不舒服,越改越
不想写了,这仅仅是打个小的比方,如果是有三个表连表查询呢?(SQL又变长了...)又发现我之前设计的实体类Product的字段不够用了,又要往里面添字段了...
这样下去相信到最后我的程序也不像程序了,如果今后想改的话可能不是那么容易了...程序之间的偶合度好高啊......
后来又想了,改数据库吧,往表里面加冗余字段吧,如在Product里面再加一个TypeName,这样的话我再要读ProductName和TypeName就不用连表查询啦,只要
"SELECT * FROM [Product] WHERE ProductID=***",但是这是两个表,同样如果要有三表连读,四表连读呢???数据库设计有问题了...程序设计有问题了,
我的问题都来了...
苦恼中...大家帮帮忙啊
给点意见...

posted on 2006-07-20 08:20  stonezhu  阅读(322)  评论(0编辑  收藏  举报