备件数据库(结构)

时间:2013-02-20 10:14:59

标签: database database-design data-structures

有一个汽车备件数据库,以及备件名称的在线搜索。用户可以键入搜索,例如“安全垫”或“安全气囊” - 搜索结果应该相同。

因此,我需要以某种方式为备件名称实现别名,问题是如何将它们存储在数据库中?到目前为止,我只想到一个选项 - 创建一个额外的表

| id | name of part   | alias_id |
-------------------------------------------------- ---------------
| 1  | airbag         | 10       |
| 2  | safety cushion | 10       |

在包含所有备件的表中添加其他字段“alias_id”,并按此字段搜索...

还有其他更好的选择吗?

2 个答案:

答案 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      |