2

假设我有一个包含以下表格的数据库:

  • 文件
  • 文件夹(关系文件..文件夹为 *..1)
  • 花(既不是文件也不是文件夹,它具有完全不同的字段集)

现在我想创建一个数据结构(可能是单个表,但如果有这样的需要,也可能有几个表),其中包含不同类型的项目列表:文件、文件夹和鲜花。我也希望这个列表保持数据的一致性(外键等)。

是否可以?如果是这样,怎么办?

如果需要,可以修改原始表格。假设数据库是一个 MS SQL Server。

4

1 回答 1

1

您可能只需要一个View,它本质上是一个已保存的查询。这样,当基础表更改时,您会看到更改

例如

CREATE VIEW MyStuff AS
SELECT 'Flower' AS [Type], [Name], NULL AS [Parent] 
--Flowers don't have a parent folder
FROM [Flower]
UNION ALL
SELECT 'File' AS [Type], [File].[Name], [Folder].[Name] AS [Parent]
FROM [File]
JOIN [Folder] ON [File].[FolderID] = [Folder].[ID] 
--Join on your foreign key
UNION ALL
SELECT 'Folder' AS [Type], [Folder].[Name], [ParentFolder].[Name] AS [Parent] 
--I am assuming folders have a parent (apart from the root)
FROM [Folder]
LEFT JOIN [Folder] AS ParentFolder ON [Folder].[ParentID] = [ParentFolder].[ID] 
--Left Join so that the root is also displayed
于 2013-10-03T11:49:06.187 回答