5

Quickr.com に似た広告 Web サイトを開発しています。

主な問題は、カテゴリごとに異なるプロパティ セットが必要なことです。たとえば、携帯電話の属性は、メーカー、オペレーティング システム、タッチ スクリーンかどうか、3G 対応かなどです。一方、アパートの属性は、ベッドルームの数、家具付きかどうか、階数、総面積などです。属性と属性の数はカテゴリごとに異なります。属性とその値を別のテーブルに保持しています。

私の現在のデータベース構造は

テーブルの分類広告

このテーブルには、すべての広告が格納されます。広告ごとに 1 つのレコード。

ad_id
ad_title
ad_desc
ad_created_on
cat_id

サンプルデータ

-----------------------------------------------------------------------------------------------
|ad_id | ad_title    | ad_desc                                       | ad_created_on | cat_id |
-----------------------------------------------------------------------------------------------
|1     | Nokia Phone | Nokia n97 phone for sale. Excellent condition | <timestamp>   | 2      |
-----------------------------------------------------------------------------------------------

テーブル分類_猫

このテーブルには、使用可能なすべてのカテゴリが格納されます。分類広告テーブルの cat_id は、このテーブルの cat_id に関連しています。

cat_id
カテゴリ
のparent_cid

サンプルデータ

-------------------------------------------
|cat_id| category            | parent_cid |
-------------------------------------------
|1     | Electronics         | NULL       |
|2     | Mobile Phone        | 1          |
|3     | Apartments          | NULL       |
|4     | Apartments - Sale   | 3          |
-------------------------------------------

テーブルの分類_属性

このテーブルには、特定のカテゴリで使用可能なすべての属性が含まれています。Classifications_cat テーブルに関連します。

attr_id
cat_id
input_type
attr_label
attr_name

サンプルデータ

-----------------------------------------------------------
|attr_id | cat_id | attr_label       | attr_name          |
-----------------------------------------------------------
|1       | 2      | Operating System | Operating_System   |
|2       | 2      | Is Touch Screen  | Touch_Screen       |
|3       | 2      | Manufacturer     | Manufacturer       |
|4       | 3      | Bedrooms         | Bedrooms           |
|5       | 3      | Total Area       | Area               |
|6       | 3      | Posted By        | Posted_By          |
-----------------------------------------------------------

テーブルの分類_属性_値

このテーブルは、分類された広告テーブル内の各広告の属性値を格納します。

attr_val_id attr_id ad_id attr_val

サンプルデータ

---------------------------------------------
|attr_val_id | attr_id | ad_id | attr_val   |
---------------------------------------------
|1           | 1       | 1     | Symbian OS |
|2           | 2       | 1     | 1          |
|3           | 3       | 1     | Nokia      |
---------------------------------------------

========

  • このデザイン大丈夫?
  • このデータをsolrで索引付けすることは可能ですか?
  • このデータに対してファセット検索を実行するにはどうすればよいですか?
  • MySQL は solr のようなフィールドの折りたたみをサポートしていますか?
4

2 に答える 2

2

私の提案は、テーブルから削除cat_idしてから、classifieds_attribute新しいテーブルを作成することです。

新しいテーブルは次のようになります。

cat_attr | id | cat_id | attr_id

これは、冗長性を減らすのに役立ちます。

于 2012-12-07T18:26:57.493 に答える