1

あるテーブルにユーザー情報が保存され、別のテーブルに各ユーザーの「タグ」と呼ばれるものが保存される MySQL データベースがあります。構造は次のようなものです。

表 1: user_info

id | col1 | col2 | ....

表 2: タグ

id | user_id | tag

おおよそのユーザー数は約 25000 で、実際には各ユーザーが 50 個のタグを持つことになりますが、理論的にはユーザーは無限のタグを作成できます。各ユーザーは自分が作成したタグにしかアクセスできないため、表 2 の user_id とペアにしました。

だから私の質問は、それは私が良い構造を持っている構造ですか、それともこれを行うためのより良い方法はありますか? (これは直接的なコードの質問ではないので、ここで尋ねるのが適切でない場合はお知らせください。)

4

1 に答える 1

3

また、ユーザー テーブルをタグ テーブルに関連付けるために、タグ テーブルと関係テーブルを作成することもできます。リレーションシップ テーブルを介して、ユーザーとタグの間に多対多のリレーションシップが存在します。

タグ テーブル: id、name など ユーザー テーブル: id、name など 関係テーブル: user_id、tag_id、外部キーが tag.id と user.id に関連付けられ、tag.id と user の pk .id.

おそらくこれが最善の方法であると私が知る限り、タグごとに 1 行、ユーザーごとに 1 行、ユーザーとタグ間の関係ごとに 1 行のテーブルが作成されます。

アプリ側で何を使用しているかにもよりますが、通常、モデル間の適切な関係 (アクティブ レコードの多対多スルー シナリオなど) を行うことができ、物事を非常に簡単に行うことができます。

于 2013-05-10T02:57:04.033 に答える