我正在尝试在我的SQL Express服务器中设置一些表,我想做一些事情来实现这个效果:
create table programs (
progid int primary key identity(1,1),
name nvarchar(255),
description nvarchar(500),
iconFile nvarchar(255),
installScript nvarchar(255)
)
但是我希望每个“程序”都有一组与之关联的类别,最好的方法是什么?我在某处读到,在单个类别条目下存储多个项目并不是一个好主意。
答案 0 :(得分:4)
为这样的类别创建另一个表:
create table categories(
catid int not null primary key identity,
caterogy varchar(255) not null
)
然后使用第三个表存储与程序相关的类别:
create table progcategory(
progid int foreign key references programs(progid) not null,
catid int foreign key references categories(catid) not null,
primary key(progid, catid)
)
答案 1 :(得分:3)
首先,定义一个表(假设您还没有),以包含至少包含id和value列的类别列表。
程序是否只能与一个类别相关联?如果是,请在PROGRAMS表中添加一列,并在PROGRAMS中的类别列与CATEGORIES表中的id列之间创建外键引用。
如果您希望能够将一个或多个类别与某个程序相关联,则需要另外一个表格:
PROGRAM_CATEGORIES_XREF
:
在这种情况下,由于PROG_ID列之间的链接,您不需要向PROGRAMS表添加列。