1

車のスペアパーツのデータベースと、スペアパーツの名前によるオンライン検索があります。ユーザーは、「安全クッション」や「エアバッグ」などの検索を入力できます。検索結果は同じである必要があります。

したがって、スペアパーツの名前のエイリアスを何らかの方法で実装する必要があります。問題は、それらをデータベースに保存する方法です。これまでのところ、頭に浮かぶオプションは1つだけです-追加のテーブルを作成することです

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

そして、追加のフィールド「alias_id」をすべてのスペアパーツを含むテーブルに追加し、このフィールドで検索します...

他のより良いオプションはありますか?

4

2 に答える 2

0

あなたの解決策は、あなたが説明した正確な問題に対してうまく見えます。

しかし、誰かが safetycushion を書いたらどうなるでしょうか? または安全クッション?このような種類のバリエーションがあると、エイリアス ルックアップ テーブルはすぐに巨大になり、これらを手作業で維持することは現実的ではなくなります。

その時点で、まったく異なるアプローチが必要になります (全文検索エンジンを考えてみてください)。

したがって、いくつかのエイリアスだけが必要であると確信している場合は、アプローチは問題ないようです

于 2013-02-20T10:42:32.230 に答える
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      |
于 2013-02-20T10:44:41.217 に答える