我正在制作一个数据库,其中包含图纸/文件/注释或这些项目的链接。然后我正在创建一个程序,让用户输入一个关键字,它将为他们提供指向图纸/文件/或笔记的链接。但我不确定如何存储所有关键字,并且仍然足够快速地工作。
Example Table Main
ID Area Type Specific File Keywords
1 RX1 icc tester .. Lock, SG1, Va2, CN1, CN2, SGP, Vu, Boof
2 RX1 ECU tester .. SG1 , BA3, yys, yyz, yyx, Lock
3 RX3 ECU Control .. SG2, SG3, VA2, YYS
etc....
因此,用户将选择区域,然后键入特定的,并键入关键字以获取结果。大约有10,000行。关键字可以是1到200之间的任何地方。
第二个可以在MS Access db中完成吗?我知道Access有限制,但这是我已经安装并习惯使用的。
答案 0 :(得分:3)
不要将关键字保留在主表中。相反,请为多对多关系保留关键字表和fileToKeyword表。 然后,您对每个项目的关键字数量没有限制。
此表的主键应该是列(fileId,keywordId),并且您的搜索将是3表连接。
I answered a similar question yesterday
评论中根据您的要求提供的表格示例:
Table Main
----------
ID Area Type Specific File
1 RX1 icc tester ..
2 RX1 ECU tester ..
3 RX3 ECU Control ..
Table Keywords
--------------
Keyword_Id Keyword_Text
1 Lock
2 SG1
3 Va2
4 CN1
5 CN2
6 SGP
Table FileToKeyword
-------------------
FileId KeywordId
1 1
1 2
1 3
1 4
1 5
1 6
2 1
2 3
备注:强>
在关键字表
在FileToKeyword表中
您的选择应如下所示:
SELECT ID, Area, Type, Specific, File
FROM Main
INNER JOIN FileToKeyword ON(ID = FileId)
INNER JOIN Keywords ON(KeywordId = Keyword_Id)
WHERE Keyword_Text IN('Lock', 'SG1')
AND Area = 'RX1'
-- any other conditions you might want to add