0

私は3つのテーブルを持っています。

最初のテーブルは USERS、2 番目のテーブルは PRODUCT KEY、3 番目のテーブルは PRODUCT KEY と USER の結合です。

次のようになります。

CREATE TABLE product_keys
(
id INT auto_increment PRIMARY KEY,
product_key VARCHAR(255)
);

CREATE TABLE users
(
id INT auto_increment PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(50)
);

CREATE TABLE user_keys
(
id INT auto_increment PRIMARY KEY,
product_key VARCHAR(255) UNIQUE,
user_id INT
);

例: プロダクト キー テーブルには 70 個のキーがあります。最初のユーザーが登録すると、プロダクト キーが記載された電子メールが送信されます。次に、その最初のユーザー ID とそのプロダクト キーが 3 番目のテーブルに保存されます。

問題は、送信されたプロダクト キーを、再送信せずに次のユーザーが登録された場合に送信する方法です。

4

2 に答える 2

1

あなたの質問は非常に不明確です。100 人のユーザーを登録する必要がありますが、70 個のキーしかありませんか? それでは、71 番目のユーザーが一意のユーザーを取得する方法はありません。

それ以外の場合は、uniqid()それらのキーを生成するために使用できます。呼び出されるたびに一意の文字列を返す必要があります

編集:キーテーブルのどのキーがすでに使用されているかを知る必要がありますか?ユーザーに割り当てられるたびに true に設定する新しい列 (「使用済み」のようなもの) をそこに入れるか (未使用のプロダクト キーを簡単に取得することもできます)、または単にレコードを削除することができます。テーブルの使用済みキー

于 2013-01-10T15:50:56.923 に答える
1

3 番目のテーブルに別の列を追加usedします。既定値は 0 です。その後、キーを使用する場合は、1 に変更します。

ユーザーに割り当てるキーを選択するときは、 が付いているキーのみを選択してused=0ください。

于 2013-01-10T15:52:36.053 に答える