0

データベースのセットアップに問題があります。コーディングの問題はありませんが、構造化する方法がわかりません。

アイデアは、人々がサイトにサインアップし、SQL を使用してテーブル USER にいるということです。しかし、ユーザーは手作りの製品のコレクションを利用することもできるので、他のユーザーは手作りの製品を見て評価し、他の多くの情報を見ることができます. ユーザーごとにテーブルを用意する代わりに、もっと簡単な方法はありますか?

製品は 1 人のユーザーにのみ「関連付け」する必要があります。ユーザーは同じ製品を所有することはできません。

Facebookはどのように機能しますか?すべてのユーザーが使用に関する情報を 1 つのテーブルにまとめているとは思いませんか? 製品は写真のようになる可能性があります。では、すべてのアルバムにはテーブルがありませんか? 右?

4

2 に答える 2

1

ユーザーごとに個別のテーブルを用意することは、リレーショナル データベース モデルでは許容できず、完全に間違っています。

達成したい目標は、実際には DB 構造化の非常に基本的なことです。そのトピックのチュートリアルを読んでみてください。

テーブルUSERPRODUCT適切に設定されたキー フィールドがあれば、適切なフォームを取得できます。

USER: user_id, << ユーザーの詳細 >>

PRODUCT: product_id, user_id, rank, <<その他の商品詳細>>

したがって、以下のクエリを使用すると、ユーザーのすべての製品を取得できます。

SELECT * 
FROM db.user u 
(LEFT) JOIN db.product p
ON u.user_id = p.user_id
于 2013-11-01T22:32:00.923 に答える
1

通常の SQL アプローチでは、ユーザー用のテーブルと製品用のテーブルを作成します。products テーブルには、ユーザー ID (またはユーザーを識別する何か) を含む行 "user" が必要です。各ユーザーに ID を割り当て (例: autoincrement int)、それを使用することができます。

次に、特定のユーザーのすべての製品を選択できます。

SELECT * FROM products WHERE user = 723;

または、製品を作成したユーザーの名前を見つけたい場合があります。

SELECT name FROM users WHERE rowid = (SELECT user FROM products WHERE product_name = 'Kitchen Chair');

ところで、私は SQL のテーブルと行に常に小文字の名前を使用していました。

于 2013-11-01T22:34:38.140 に答える