作为SQL数据库表的集合数量可变
更多的是关于特定问题的数据库模型的问题。问题如下: 我有许多对象组成固定表中的行,它们都是不同的(当然)。人们希望创建包含这些存储对象数量可变的集合。这些集合是用户定义的,因此没有硬编码。每一组都有一个数字 我的问题是:对于实现这样一个特性,您有经验的SQL程序员能给我什么建议。我最直接的方法是使用表变量或临时表为每个这样的集合创建一个表。最后,一个已经存在的表,其中包含集合的名称(作为让用户知道数据库中当前存在哪些集合的一种方式) 如果没有效率,我会朝什么方向去解决这个问题作为SQL数据库表的集合数量可变,sql,table-variable,Sql,Table Variable,更多的是关于特定问题的数据库模型的问题。问题如下: 我有许多对象组成固定表中的行,它们都是不同的(当然)。人们希望创建包含这些存储对象数量可变的集合。这些集合是用户定义的,因此没有硬编码。每一组都有一个数字 我的问题是:对于实现这样一个特性,您有经验的SQL程序员能给我什么建议。我最直接的方法是使用表变量或临时表为每个这样的集合创建一个表。最后,一个已经存在的表,其中包含集合的名称(作为让用户知道数据库中当前存在哪些集合的一种方式) 如果没有效率,我会朝什么方向去解决这个问题 谢谢。表变量和临时
谢谢。表变量和临时表寿命短,范围窄,可能不是您想要使用的。每套一张表也不是我会选择的解决方案 听上去你需要三张桌子。一个用于对象,一个用于集合,一个用于对象和集合之间的关系 类似这样的内容(使用SQL Server语法描述表) 下面是一幅美丽的画面,显示了m:m关系:
表变量和临时表的寿命短,范围窄,可能不是您想要使用的。每套一张表也不是我会选择的解决方案 听上去你需要三张桌子。一个用于对象,一个用于集合,一个用于对象和集合之间的关系 类似这样的内容(使用SQL Server语法描述表) 下面是一幅美丽的画面,显示了m:m关系:
create table [Object]
(
ObjectID int identity primary key,
Name varchar(50)
-- more columns here necessary for your object.
)
go
create table [Set]
(
SetID int identity primary key,
Name varchar(50)
)
go
create table [SetObject]
(
SetID int references [Object](ObjectID),
ObjectID int references [Set](SetID),
primary key (SetID, ObjectID)
)