0

私は、スポーツ選手とその統計のリストを表示する Web サイトを持っています。ユーザーは、これらのプレーヤーのチームを登録して作成し、チームの統計を合計して分析できます。各ユーザーがリストからプレーヤーを「削除」し (データベースからは削除しない)、必要に応じて削除されたプレーヤーをリストに戻す機能を提供したいと考えています。ユーザーがサイトに戻ったときにリストが保存されるように、消された選手または消されていない選手をデータベースに保存する必要があります。

これらは私が現在持っているテーブルです:

Players Table (COLS: Name, Team, Position, Stats, etc.)
Users Table (COLS: User ID, Name, Email, etc.)
Teams Table (COlS: User ID, 1, 2, 3, etc.)

ユーザー ID の列があり、30 列 (1 ~ 30 の番号が付けられている) がある Teams テーブルに情報を格納するより良い方法があると確信しています。セル (この形式の Player Name/Position)。チームは最大 30 人のプレイヤーで構成できます。

どのプレイヤーがどのユーザーによって消されたかを格納する「利用可能なテーブル」が必要になると思います。ユーザーがリストから最大 600 人のプレーヤーを消すことができることを考えると、これを行う最善の方法はわかりません。

私はデータベースを扱うのがまったく初めてで、壁にぶつかったようです。

ありがとう!

4

2 に答える 2

1

おそらく、チームテーブルからプレーヤーデータを削除し、プレーヤーとチームデータの結合テーブルを設定する必要があります。

だからあなたは

Teams Table (Cols: ID, User ID, Team Name)
Team_Players Table (Cols: Team_ID, Player_ID, Position, Active)

次に、Team_Playersでクエリを実行して、どのプレーヤーがどのチームに所属しているかを取得し、それらがアクティブかどうかを確認できます。

Team_IDとPlayer_IDの結合は一意であり、このテーブルのキーとして使用できるため、IDフィールドを追加しませんでした。

于 2013-01-08T05:01:14.940 に答える
0

このチュートリアルを読んでください。とても役に立ちます:

http://www.tomjewett.com/dbdesign/dbdesign.php?page=association.php

データベースの設計は、特定のプレーヤーがデータベース内の複数のチームに所属できるかどうかによって異なります。可能であれば、それはhas and belongs to many関係であり、おそらく呼ばれるリンクテーブルが必要になりますPlayers_Teams(常にアルファオーダーでテーブルをリストします)。このテーブルには、crossedOffあなたが話していた列も含まれている可能性があります。

ActiveRecord や Doctrine のような ORM (Object Relational Mapper) を使用すると、コード内でこれらの関係の管理を「自動化」するために記述する必要があるコードの量を大幅に削減できます。

于 2013-01-08T05:16:18.340 に答える