1

分類された Web アプリケーションの開発を開始しようとしています。しかし、DB 設計の構築中に特定の問題に直面しています。

ユーザーは、さまざまな種類の既存のカテゴリ (車両、不動産、コンピューター、教育など) の下に広告を投稿できます。ただし、各カテゴリには、特定の特定のフィールド/プロパティと、いくつかの共通のフィールド/プロパティがあります。

私の困難は、自転車の投稿広告を埋めた後、共通の i/p 値をadvertise_t テーブルに保存するようなものです (以下を参照)。しかし、自転車の製造元、自転車のモデル、自転車の年など、自転車に固有の他のフィールド値をどこに保存しますか?

同様に、ユーザーが House(rent) の広告を投稿したい場合、共通の i/p 値をadvertise_t テーブルに保存できます。しかし、総面積(平方)、部屋数など、賃貸住宅に固有の他のフィールド値をどこに保存し、どのようにマッピングするのでしょうか。

私のテーブルは以下の通りです:

category_id
------------
(catId, parentCatId, cat_title, cat_desc)

advertisement_t
----------------
(adId, catId, userId, ad_title, ad_desc, photoId, postDate, statusId, price, ad_address, adValidFrom, adValidTo, adIsDeleted) 

Photo_t
--------
(photoId, primary_photo, sec_photo1, sec_photo_2, sec_photo_3)

user_t
-------
(userId, username, password, email, activationkey, isvalidated, joinedDate, activatedDate, statusId)

他の分類されたサイト (olx、freeadds など) が、投稿された広告データをデータベースに保持 (保持および表示) するためにどのように使用されていたかはわかりません。

誰かが何か考えを持っているなら、助けてください。

前もって感謝します。

4

2 に答える 2

0

私は通常、これらのデータを 2 つのグループに分類するのが好きです (1) ある列に保存される/列にマップされる検索可能なデータと、(2) json_encoded 形式のテキスト列に保存されるジャンク データ (私はそれを additional_info と呼びます)。

検索可能な列の場合、(category_id、category_value、ad_id) を持つ別のテーブル category_values テーブルを追加できます。

繰り返しになりますが、カテゴリ タイプが頻繁に繰り返されて DB が巨大になることが予想される場合は、category_values テーブルを (value_id、Category_id、category_value) と (value_id、ad_id) の 2 つに分割できます。これにより、より多くの結合が発生し、導入する必要はないと思います。

于 2013-03-11T17:36:20.747 に答える
0

私はかつてこれに近いことをしました。

そして、私は2つのオプションを見ることができます:あなたがすべきでないこと - 必要な商品(家、車、自転車など)のためにたくさんのテーブルを実装します。拡張可能。

私のおすすめ:

さらに 3 つのテーブルを追加します。

CustomField (カテゴリで使用される可能性のあるフィールドのリストを設定するには)

(CFid、タイトル)

CategoryCField (ユーザーが新しい広告を入力したときに表示するフィールドを知るための連想関係)

(catId、CFid)

StoredCFData (実際にデータを保存)

(id、adId、CFid、値)

ただし、この方法で 2 つの問題を見つけることができます。「関係の輪」を作るのはあまり得意ではありませんが、慎重に行えばうまくいきます。また、シンプルにするために、costum フィールドの DataType をテキスト/数値に減らす必要があります。ラジオ ボタンやコンボ ボックスに適用すると問題が発生します。

幸運を祈ります、ラウル

于 2013-03-11T18:01:58.957 に答える