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 に答える