求救!!!数据库该如何设计???
各位师兄,我正在做一个电子商务类的网站,首页的商品列表要实现的主要是下面这个效果(象淘宝的商品列表一样,实现多级分类),
大类信息 大类信息
小类信息 小类信息 小类信息 小类信息 小类信息
大类信息 大类信息
小类信息 小类信息 小类信息 小类信息 小类信息
大类信息 大类信息
小类信息 小类信息 小类信息 小类信息 小类信息
我想问它的数据库该怎样设计。昨天我问了一下,有的师兄说想下面这样设计
id,parentid,name,index
但是我不是很理解,希望有兄弟给我讲一下,或者你的想法是什么样的,给我说一下,
谢谢了!!!!!
------解决方案--------------------id, parentid, name, index
1 0 大类一 0
2 0 大类二 0
3 1 小类一 0
3 1 小类二 0 应该是这个意思
要是我,我就分二个表放。
------解决方案--------------------大类:id name index
小类: id name pid index
pid对应大类id,index是用来排序的吧,猜的..
------解决方案--------------------ref:http://flashtom.spaces.live.com/Blog/cns!C50A7AC85405543E!167.entry
------解决方案--------------------用无限级分类吧 给你一个示例
这个是我昨天 弄的。。。数据库三个字段
ClassID, int
ParentClassID, vachar
ClassName vachar
链接数据库 哪儿 我调用的类 。。
用datareader 读的数据
public partial class index : System.Web.UI.Page
{ DataBase db = new DataBase();
SqlDataReader dr;
SqlDataReader drChlid;
string Echo = " ";
protected void Page_Load(object sender, EventArgs e)
{
dr = db.RunProcGetReader( "select ClassID,ParentClassID,ClassName from class where ParentClassID is null ");
while(dr.Read())
{
Echo = Echo + " <div> <label id=\ " " + dr[ "ClassID "].ToString().Trim() + "\ "> + " + dr[ "ClassName "].ToString().Trim() + " </label> \n ";
Child(dr[ "ClassID "].ToString().Trim(), "|- ");
}
dr.Close();
Literal1.Text = Echo;
}
protected void Child(string ID,string StrDis)
{
drChlid = db.RunProcGetReader( "select ClassID,ParentClassID,ClassName from class where ParentClassID = " + ID);
while (drChlid.Read())
{
Echo = Echo + " <div> <label id=\ " " + drChlid[ "ClassID "].ToString().Trim() + "\ "> " + StrDis + drChlid[ "ClassName "].ToString().Trim() + " </label> \n ";
Child(drChlid[ "ClassID "].ToString().Trim(), "| " + StrDis);
}
//drChlid.Close();
}
}
------解决方案--------------------建多张表,父表,给他个状态是Status,然后给他的值分别是A,B,C...
在建子表,给他个状态FatherStatus,然后对应父表是A,B,C...
根据SQL语句得到对应的上一级的就可以,可以一直往下做到孙,重孙,玄孙.....