我認爲一些反射性管理環境(例如.NET)以屬性形式向代碼實體添加自定義元數據的能力非常強大。是否有任何機制爲數據庫做類似的事情?自定義/任意數據庫元數據
數據庫顯然已經有相當數量的可用元數據;例如,您可以獲取所有表,列和外鍵引用的列表,這些列表足以將模式圖放在一起。不過,我能想象很多用途的東西更通用的,如沿C#和DDL的這個虛構的融合線的東西:
[Obsolete("Being replaced by the ClientInteraction table")]
create table CustomerOrder (
[SurrogateKey]
MyTableId int identity(1,1) primary key
[NaturalKey]
[ForeignKey("Customer", "CustomerId")] /* Actual constraint left out for speed */
,CustomerId int not null
[NaturalKey]
[ConsiderAsNull(0)]
[ConsiderAsNull(-1)]
,OrderId int not null
[Conditional("DEBUG")]
,InsertDateTime datetime
)
的例子是有點做作,但希望讓我的問題更加清晰。我認爲反映這種元數據的能力可以使許多任務更容易實現自動化。有沒有這樣的事情?我正在使用SQL Server,但是如果有另一個DBMS的東西,那麼我仍然有興趣聽到它。