日期:2014-05-17  浏览次数:20568 次

主从表外键关联的时候,是关联ID好些还是关联名称好些?
一般来说关联主表ID的,
我想为了查询方便,是不是关联用名称更方便一点,不知道效率是否会受到影响。

例如:
一级分类
SQL code
create table [CategoryT]
(
CateT_ID int identity(1,1),
CateTName nvarchar(30) not null UNIQUE, -- 一级分类名称
Order_ID tinyint not null,--排序ID
primary key(CateT_ID)
)
二级分类: 利用级联更新 使二级分类和一级分类数据保持一致。
SQL code
create table [CategoryS]
(
CateS_ID int identity(1,1),
CateTName nvarchar(30) not null foreign key references CategoryT(CateTName) on update cascade, --一级分类名称
CateSName nvarchar(30) not null UNIQUE,--  二级分类名称
Order_ID tinyint not null,--排序ID
primary key(CateS_ID)
)


记录数据的时候可以直接用名称
比如
二级分类 所属分类 (之前的做法 所属一级分类的ID CateT_ID)
切割机 电动工具 (在显示的时候需要多进行一步根据一级分类ID查询一级分类名称)
磨光机 电动工具  


感觉直接关联名称,然后用级联更新方便点。 
弊端是在分类进行修改时候,要进行一次相关数据的修改。 数据多的话应该会影响效率点慢
但是分类名称等修改的情况一般比较少发生。

用ID关联的好处是,修改了名称,不需要对子关联进行名称修改。 缺点是每次查询相关数据都要根据ID去获得
名称,这种操作平时用的很多。


希望高手能指点一下,用那种方式好些?

------解决方案--------------------
果断ID ID是数字型的,比字符串的优势大
------解决方案--------------------
才看明白此帖的意思

醉翁之意不在酒