有一个汽车备件数据库,以及备件名称的在线搜索。用户可以键入搜索,例如“安全垫”或“安全气囊” - 搜索结果应该相同。
因此,我需要以某种方式为备件名称实现别名,问题是如何将它们存储在数据库中?到目前为止,我只想到一个选项 - 创建一个额外的表
| id | name of part | alias_id |
-------------------------------------------------- ---------------
| 1 | airbag | 10 |
| 2 | safety cushion | 10 |
在包含所有备件的表中添加其他字段“alias_id”,并按此字段搜索...
还有其他更好的选择吗?
答案 0 :(得分:0)
对于您描述的确切问题,您的解决方案看起来很合适。
但是,如果有人写安全垫,怎么办?或安全cuschion?有了这些变化,您的别名查找表很快就会变得庞大,并且手动维护这些变体将不可行。
此时你需要一种完全不同的方法(想想全文搜索引擎)。
所以如果你仍然确定你只需要几个别名,你的方法似乎没问题。
答案 1 :(得分:0)
如果我理解正确,最好在多对多的情况下有3个表(如果多个部分有多个别名:
表 - 部件
| id | name of part |
-----------------------
| 1 | airbag |
| 2 | safety cushion |
表格 - 别名
| id | name of alias |
-----------------------
| 10 | AliasName |
表 - PartToAliases
| id | PartId | AliasId |
-------------------------
| 1 | 1 | 10 |
| 2 | 2 | 10 |