之間的引用我有兩個表:實體和動態數據網站:表
CREATE TABLE [dbo].[Context] (
[Identity] int IDENTITY (1, 1) NOT NULL,
[Naam] nvarchar (255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Code] nvarchar (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Omschrijving] ntext COLLATE SQL_Latin1_General_CP1_CI_AS NULL) ;
ALTER TABLE [dbo].[Context]
ADD CONSTRAINT [PK_Context]
PRIMARY KEY ([Identity]) ;
ALTER TABLE [dbo].[Context]
ADD CONSTRAINT [IX_Context_Naam]
UNIQUE ([Naam]) ;
ALTER TABLE [dbo].[Context]
ADD CONSTRAINT [IX_Context_Code]
UNIQUE ([Code]) ;
CREATE TABLE [dbo].[Component] (
[Identity] int IDENTITY (1, 1) NOT NULL,
[ContextLink] int NOT NULL,
[Naam] nvarchar (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Code] nvarchar (10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[Omschrijving] ntext COLLATE SQL_Latin1_General_CP1_CI_AS NULL) ;
ALTER TABLE [dbo].[Component]
ADD CONSTRAINT [FK_ComponentContext]
FOREIGN KEY ([ContextLink])
REFERENCES [dbo].[Context] ([Identity]) ;
(上面的腳本應該創建兩個。) 基本上,我有指上下文表的部件表。
我使用這兩個表創建了一個動態數據站點,.NET將爲我處理引用。這是快速提供基本網站的好方法,所以我們可以先繼續處理業務邏輯。
然而,當我看到在DDS組件表,我注意到參考顯示上下文,而不是名稱場代碼場。那麼,在顯示上下文表的引用鏈接時,我該如何強制DDS使用Name字段呢?
(最好用簡單的東西,因爲我處理了60桌是與此類似。他們中的大多數簡單的查找表,使過濾更容易。)
因爲我們不打算在這個Web應用程序的GUI一邊工作了幾個月,在DDS源本身中無法改變某些東西。如果它可以在數據庫或實體模型中修復,那麼請讓我知道!
我用於這個項目的數據模型很簡單:每個表都有一個主鍵「Identity」,它是一個autoIncrement字段。 Code和Naam(名稱)字段用於描述特定數據,並在其他應用程序中用於填充組合框和過濾器。這些應用程序不直接與數據庫通信,但它們使用基於數據庫的導出XML。在此導出XML中,指向「身份」的鏈接將替換爲指向「代碼」的鏈接。這允許用戶將代碼更改爲他們喜歡的任何內容,而不需要遍歷整個數據庫來調整引用。 數據庫只有一個目的:使多個用戶更容易維護其他應用程序使用的XML數據。我們有大約5人每天24小時對這些數據進行修改,每週生成一次導出XML,然後發送給我們的客戶。 (誰主要在離線應用程序中使用此數據,以及具有有限互聯網連接的筆記本電腦。)
翻譯爲好奇:納摩=名稱,Omschrijving =評論。其餘的只是英文名字。所以現在你知道兩個英文單詞的荷蘭語翻譯。 :-) – 2009-06-15 12:55:27