我有四个级别来根据它们的属性对项目进行分类。某些项目可能不需要所有子类别级别,并且某些项目可能共享相同的子类别值。
例子:
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
我希望查找表包含与每个项目相关的值,以便当用户从第一个类别的下拉列表中选择一个值时,下一个子类别中的相应值将自动下拉(级联),依此类推。
我将为大多数常见项目预定义不可删除、不可更新的值,但是我无法提供所有可能的项目,我希望允许用户从第二级以下添加值。
对每个项目进行分类的目的是提供一个统一的方法来描述项目和查询以有效地返回所有需要的项目。
问题:
如何确保用户添加的新值将正确链接到父值或子值?
我应该允许用户添加新的类别和子类别,还是应该强制他们仅从预定义的值中进行选择,如果他们的项目不适合预定义的值之一,则选择“其他”值并输入自由格式的评论?
我定义的当前方法是最佳方法还是您有更好的建议?
以下是我定义的当前表和关系:
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.