我有一个保存在我们办公室的物品的数据库。我想为这些项目附加标签,以便可以轻松搜索数据库 - 例如,如果我想知道我们有多少订书机和打孔器,我可以按Stationery
标签进行过滤。
为此,我在表中调用Tags
了一个多值查找字段Item
,其中包含一个项目可以按其分类的所有标签的列表(可能不止一个)。
目前要以表格或数据表的形式输入数据,我需要单击下拉菜单并单击我要添加的每个标签。我希望数据输入尽可能顺畅和简单,并且所有操作都可以使用键盘进行 - 但是当我尝试输入标签时,它不允许我输入。我只能点击。对于数百个项目,这太麻烦了。
是否有解决方案、快捷方式或方法可以仅通过使用键盘或更少的步骤将值输入到多值字段中?
我强烈建议避免在 MS Access 中使用多值字段:它们违背了数据库规范化规则,而且您无法像查询任何其他单值字段那样轻松访问或过滤它们保存的数据。
相反,考虑你有一个多对多的关系:一个
Item
可能有很多Tags
,一个Tag
可能被分配给很多Items
。因此,如果您希望遵循最佳实践并遵守数据库规范化规则,我建议使用两个单独的表来容纳
Items
和Tags
,以及一个连接表,方法如下:项目表
该表将包含唯一标识表中每个项目的主键 (PK),以及其值通常不会被表中其他项目共享的属性,例如
Description
.在最基本的形式中,这样的表可能如下所示:
表中其他项目可能共享的属性(例如,
Colour
,Location
,Type
)应出现在它们自己的单独表中,并由项目记录使用外键 (FK) 引用。标签表
该表将包含所有可用的标签,每个标签将再次由表中的主键字段唯一标识:
项目标签连接表
该联结表用于表示 和 之间的多对多关系
Items
,Tags
可以按以下方式构建:正如您从上面看到的,我们已经很容易地将
Stationery
标签分配给表中的Pen
和(展示标签和项目之间的一对多关系),同样,我们可以将多个标签分配给任何项目(展示一个) -项目和标签之间的多对多关系)。Pencil
Items