0

窮地に立たされています.1人が登録でき、ユーザーはさらに5人を登録でき、彼が登録した他のユーザーもそれぞれ5人のメンバーを登録できるPHP Webアプリケーションを作成するように契約されました.

ユーザーを配列に登録された特定のメンバーを保存するデータベースを作成することが期待されています。これにより、それらを表形式でリストします。

ややこしい部分は

  1. 5人のユーザーを保存できるようにデータベース構造を分解する方法、次に照会されたときにそれらをリストする方法(配列または別のテーブルに保存するのに混乱しています)。しかし、私は配列に保存したいと思います
  2. 登録された5人のいずれかによって登録された他のユーザーは、メインのレフリーにリンクされ、それらすべてがカウントされ、ユーザーが5人のメンバーを登録し、5人のメンバーがそれぞれ5人のユーザーを登録すると、プロセス全体が停止します/彼女のアカウントでは、各アカウントの合計が 25 になります

次のように説明できます。

1. Parent - 5 children - 

次に、5人の子供はそれぞれ5人の子供を産み、親は子供と孫の両方を認め、子供と孫の数が25になると、親の生殖サイクルは終了し、子供も25を作ることができます

データベースを作成しましたが、この部分を完了するのに 3 日かかるため、データベースを正常に構築するためのガイドラインが必要でした。

public function userTable()
{
    $qry = "CREATE TABLE IF NOT EXISTS users(
    user_id         INT(8) NOT NULL AUTO_INCREMENT, 
    username        VARCHAR(35) NOT NULL,
    password        VARCHAR(35) NOT NULL,
    referralIDs             varchar(500) NOT NULL,
    totalRefers        VARCHAR(35) NOT NULL ,
    userIDhash          varchar(30) not null,
    date                date,
    time                varchar(20) not null,
    PRIMARY KEY (user_id)
    )TYPE=INNODB";
$result = $this->qry($qry);
    return;
}

    public function ReferralTable()
{
    $qry = "CREATE TABLE IF NOT EXISTS Refers(
    user_id         INT(50) NOT NULL, 
    usersRegistered        VARCHAR(500) NOT NULL,
    referby             int(50) not null
    )TYPE=INNODB";
$result = $this->qry($qry);
    return;
}

「、」で区切られた配列に子供を保存する1つのテーブルのみで作業することを好みます。その後、保存方法に混乱し、子供のIDを次々に取得できます。孫のクエリに使用

誰も混乱しないことを願っています?? 前もって感謝します

4

1 に答える 1

1

なぜ配列を使用する必要があるのですか? それは単純な1対多の関係です...この関係を保持するテーブルを作成するか、ユーザーテーブルのフィールドを作成してください...

これは2つのテーブルの例の例です...

ユーザーテーブル

id | email | name | whatever
1    a@b.c   jon
2    j@b.c   mel

ユーザー登録済み

register_id | registree_id
    1             null
    2              1

1 つのテーブルの例

id | email | name | whatever | ref_user_id
1     a@b.c   jon                NULL
2     j@b.c   mel                  1
3     f@b.c   al                   1

1 が登録したすべてのユーザーを取得できるよりも:

SELECT * FROM user WHERE ref_user_id = 1

または 1 が登録した人数を取得する

SELECT COUNT(*) FROM user WHERE ref_user_id = 1

どちらの場合も、ID が 1 のユーザーが最初に登録され (参照されず)、ユーザー #2 が登録されました。

于 2012-06-04T15:10:40.143 に答える