0

属性に従って項目を分類するための 4 つのレベルがあります。一部のアイテムはすべてのサブカテゴリ レベルを必要としない場合があり、一部のアイテムは同じサブカテゴリ値を共有する場合があります。

例:

Category1   Category2   Category3   Category4
---------   ---------   ---------   ---------
Jewelry     Ring        Wedding
Jewelry     Bracelet    Serpentine 
Jewelry     Necklace    Serpentine
Equipment   Tool        Power       Drill                
Equipment   Tool        Hand        Jigsaw
Accessory   Battery     AA
Accessory   Movie       DVD         Action
Accessory   Game        PS3         Combat 

ユーザーが最初のカテゴリのドロップダウン リストから値を選択すると、次のサブカテゴリの対応する値が自動的にドロップダウン (カスケード) されるように、ルックアップ テーブルに各項目に関連する値を含めたいと考えています。

ほとんどの一般的なアイテムに対して、削除不可、更新不可の値を事前に定義しますが、ユーザーが 2 番目のレベルから下に値を追加できるようにするために、考えられるすべてのアイテムを提供することはできません。

各アイテムを分類する目的は、アイテムを記述し、クエリが必要なすべてのアイテムを効果的に返すための統一された方法を提供することです。

質問:

  1. ユーザーによって追加された新しい値が、親または子の値に適切にリンクされるようにするにはどうすればよいですか?

  2. ユーザーが新しいカテゴリとサブカテゴリを追加できるようにする必要がありますか、それとも事前定義された値からのみ選択するように強制する必要がありますか?

  3. 私が定義した現在の方法は最良の方法ですか、それともより良い提案がありますか?

以下は、私が定義した現在のテーブルと関係です。

ここに画像の説明を入力

Columns        MS-Access     Informix   Comments
-------------- ------------  --------   ----------------------------------------
Primary keys   Autonumber    SERIAL  
Foreign keys   Long Integer  INTEGER 
English        Text          VARCHAR    Description in English language.
Spanish        Text          VARCHAR    Description in Spanish language.
NonDelete      Yes/No        CHAR(1)    Cant delete predefined value if TRUE.
NonUpdate      Yes/No        CHAR(1)    Cant update predefined value if TRUE.
Deleted        Yes/No        CHAR(1)    User-defined value cant be used anymore. 
StockKeptUnit  Yes/No        CHAR(1)    Non-serialized inventory item if TRUE.
4

2 に答える 2

1

それらは定義上適切にリンクされていませんか?結局のところ、それがPK/FK関係のポイントのようなものです。

おそらく、新しいtlkpItemCat2の作成には、有効な親tlkpItemCat1の選択が含まれます。そうしないと、INSERTが失敗します。tlkpItemCat2.ItemCat1_SIIDがNOTNULLとして定義されている限り、有効な関係がほぼ保証されます。

これは、エンドユーザーがNecktieが動力工具であると宣言していないことを保証するものではありませんが、それはまったく別の問題です。


さて、この正確な問題(オブジェクトの分類)の経験から、このデザインは非常にエレガントで便利に見えますが、使いやすさの観点からはひどいものであると言えます。ユーザーは、アイテムの正しいカテゴリをすばやく見つけるために、事前に階層を知っている必要があります。そして、エンドユーザーが階層にレベルを追加し始めると、適用するCat1 / Cat2/Cat3の正しい組み合わせを見つけようとする行き止まりの検索の悪夢になります。 -この画面を通過するだけの分類。

より良いアプローチは、ユーザーが「ジグソー」と入力するだけで、次の行に沿ってリストを返すことができるようにすることです。

Did you mean:
 []   Equipment | Tool       | Power  | Jigsaw
 []   Equipment | Tool       | Hand   | Jigsaw
 []   Game      | Childrens  | Jigsaw
 []   Accessory | DVD-Movie  | Horror | Jigsaw
 []   ... or [something else]?

はい、それはより多くの作業ですが、UIとUXの観点からは価値があります。

于 2013-01-17T07:23:29.150 に答える
1

これにより、無限のカテゴリが可能になります。UI または OnChange イベントを通じて非孤立化を強制する必要があります。

ここに画像の説明を入力

次に、テーブルの内容は次のようになります。

ここに画像の説明を入力

ここに画像の説明を入力

ここに画像の説明を入力

于 2013-01-17T16:01:30.323 に答える