1

更多关于特定问题的数据库模型的问题。问题如下:

我有许多对象构成了固定表中的行,它们都是不同的(当然)。人们想创建包含可变数量的这些存储对象的集合。这些集合是用户定义的,因此没有硬编码。每组将由一个数字来表征。

我的问题是:有经验的 SQL 程序员能给我什么建议来实现这样的功能。我最直接的方法是使用表变量或临时表为每个这样的集合创建一个表。最后,一个已经存在的表,其中包含集合的名称(作为让用户知道数据库中当前存在哪些集合的一种方式)。

如果效率不高,我会寻找什么方向来解决这个问题?

谢谢。

4

1 回答 1

1

表变量和临时表是短暂的,范围很窄,可能不是您想要使用的。每组一张桌子也不是我会选择的解决方案。

听上去你需要三张桌子。一种用于对象,一种用于集合,一种用于对象与集合之间的关系。

像这样的东西(使用 SQL Server 语法来描述表)。

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)
)

这是 m:m 关系作为一个漂亮的图片: 在此处输入图像描述

于 2012-04-07T17:03:17.063 回答