有关特定问题的数据库模型的更多问题。问题如下:
我有许多对象组成固定表中的行,它们都是不同的(当然)。人们希望创建包含可变数量的这些存储对象的集合。这些集合将由用户定义,因此不需要硬编码。每组都将以数字为特征。
我的问题是:您有什么建议可以让SQL程序员让我实现这样的功能。我最直接的方法是使用表变量或临时表为每个这样的集创建一个表。最后,一个已经存在的表,其中包含集合的名称(作为让用户知道数据库中当前存在哪些集合的一种方式)。
如果效率不高,我会采取什么方向来解决这个问题?
感谢。
答案 0 :(得分:1)
表变量和临时表是短暂的,范围很窄,可能不是您想要使用的。每个Set的一个表也不是我选择的解决方案。
听到它,你需要三张桌子。一个用于对象,一个用于集合,一个用于对象和集合之间的关系。
像这样(使用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关系作为漂亮的图片: