2011-07-22 4 views
1

dbを使ったasp.net/sqlサーバーのWebサイトがあり、新しいデータベースカテゴリとフィールドを作成する方法を調査したい?このような有機的なウェブサイトの例はありますか? Adminによるある程度の制御を可能にする最適なアプローチに興味があります。ユーザーがASP.NET Webサイトで新しいカテゴリとフィールドを作成できるようにする

+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. 

ので、その後、伝統的なテーブルに1行であったであろうものを複数行になります)のGUIDを作り上げるないM:

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 = 'Column'、Column = 'ColumnName' )。これは、sortbyカラムが入ってくる場所です。何か他のものに頼りたくない場合は、正しい順序でGUIを構築するのに役立ちます。

しかし、私は辞書にユーザー定義の辞書要素を格納することはあまりにも多すぎると感じました。設計時にどのような構造が必要かをすでに知っているため、それらは別々のテーブルにすることができます。 :)

このメソッドは、は決して伝統的なテーブルが持っている報告の速度または品質を持っていませんです。それらは一般に、開発者が構造の事前知識を有することを必要とする。しかし、柔軟性が要求される場合、となります。

多くの場合、自分のサイトのユーザー定義領域として始まったのは、後でレポートなどのためにデータを正規化するプロジェクトでした。しかし、これにより、ユーザーは限られた方法で開始し、開発者を引き付ける。あなたは、SharePointをお持ちの場合は

  1. 、ユーザーが既にこの中 自分のリストを作成する能力を持っている:

    はすべてその後、私はちょうどまたはあなたのために動作しない可能性があり、いくつかのより多くのオプションを言及したいと思います方法。

  2. 複数の同時編集を許可するような方法で保存された共有フォルダ内のExcelドキュメントは、この目的にも役立ちます。
  3. ウェブサーバーに保存され、ODBC でアクセスされるExcelドキュメントは、このような単一テーブルデータベースとしても機能します。
関連する問題