2011-07-22 47 views
1

我們有一個數據庫驅動的asp.net/sql服務器網站,並希望調查我們如何允許用戶創建新的數據庫類別和字段 - 這是否瘋狂?。有沒有這樣的有機網站的例子 - 事實,我沒有看到任何可能暗示我是? 對最好的方法感興趣,這將允許管理員進行某種級別的控制。允許用戶在ASP.NET網站上創建新的類別和字段

+0

你的意思是表格的表格嗎?你能詳細說明嗎? – sternr

+0

...您現在正在訪問的網站允許這樣做,但您必須擁有一定的知名度才能創建新標籤。 – Caimen

回答

0

我用字典表而不是更傳統的表實現了這些行的東西。

字典表可能是這個樣子:

create table tblDictionary 
(id  uniqueidentifier, --Surrogate Key (PK) 
itemid uniqueidentifier, --Think PK in a traditional database 
colmn uniqueidentifier, --Think "column name" in a traditional database 
value nvarchar,   --Can hold either string or number 
sortby integer)   --Sorting columns may or may not be needed. 

這樣,那麼,你會在傳統的表已經一行將成爲多行:

傳統的方式(當然我」中號不能彌補的GUID):

ID  Type Make  Model  Year Color 
1  Car Ford  Festiva 2010 Lime 

...將在字典中成爲多行:

ID ITEMID COLUMN  VALUE  
0  1   Type  Car 
1  1   CarMake Ford 
2  1   CarModel Festiva 
3  1   CarYear 2010 
4  1   CarColor Lime 

您的GUI可以搜索itemid = 1的所有記錄並獲取所需的所有列。 或者它可以搜索所有記錄,其中itemid in (select itemid from tblDictionary where column='Type' and value='Car'可以獲取所有汽車的所有列。從理論上講,您可以將用戶定義的類型放入同一個表(Type ='Type')以及該Type所具有的用戶定義列(Type ='Column',Column ='ColumnName' )。這就是sortby列進入它的地方 - 如果你不想依賴別的東西,可以按照正確的順序構建GUI。

雖然有很多次,但我覺得在字典中存儲用戶定義的字典元素有點過分了。這些可以是單獨的表格,因爲您已經知道他們在設計時需要什麼樣的結構。 :)

這種方法將從來沒有有傳統的表會有報告的速度或質量。這些通常要求開發人員對結構有預先了解。但是如果要求是靈活的,這個可以做這個工作。

通常,作爲我的網站的用戶定義區域開始的項目後來有一個項目來規範化數據以進行報告等等。但是,這允許用戶以有限的方式開始並制定出他們的要求吸引開發者。

畢竟,我只是想提一提這可能會或可能不會爲你工作了幾個選項:

  1. 如果你讓SharePoint,用戶已經創建這個 自己列出的能力辦法。
  2. 共享文件夾中的Excel文檔以 的方式保存,以允許同時進行多個編輯也可用於此目的。
  3. 存儲在網絡服務器上並通過ODBC 訪問的Excel文檔也可用作這樣的單表數據庫。
相關問題