0

仕事で Web アプリケーションを構築しており、ユーザーが特定の種類の情報を登録できるフォームがあります。

Username   |   Password   |   Company

今、私はこれにアプローチする方法がわかりません。私が欲しいのは、ユーザーがその登録フォームを送信したときです。ユーザー名、パスワード、および会社は1つのデータテーブル(ユーザー)に書き込まれますが、ユーザーデータテーブルの会社は外部キー参照であるため、会社を別のデータテーブルに書き込む必要があります(会社)を主キーとして(そしてもちろん、1対1の関係としてFK参照として書き込まれるユーザー名)。

PHP と MYSQL を知っているので、皆さんからのコード化されたソリューションを探しているわけではありません。クリエイティブなジュースを流すための疑似コード アルゴリズムを探しているだけです。

編集:私はMYSQLではなくPOSTGRESQLを使用していますが、ポート番号と小さな構文の変更を除いてほとんど違いはないと確信しています

4

3 に答える 3

1

最初の列はid次のとおりです。

  1. 会社を保存$mysqli->query("INSERT INTO company VALUES (NULL, '$company_name')";
  2. このアイテムの ID を取得します。$company_id = $mysqli->insert_id;
  3. このIDでユーザーを保存$mysqli->query("INSERT INTO user VALUES (NULL, '$username', '$password', '$company_id')";
  4. ユーザーIDを取得する$user_id = $mysqli->insert_id;
  5. 会社を更新します。$mysqli->query("UPDATE company SET user_id = $user_id WHERE company_id = $company_id)";
于 2012-07-26T14:57:46.573 に答える
0

いくつかの質問:

  • User:Company == 1:1なのはなぜですか?私と同僚があなたのサイトに参加した場合、別の場所で働いているふりをする必要がありますか?
  • 会社に複数の従業員を配置できる場合、会社名のバリエーションを組み合わせるためにどのような検証を採用しますか(IBMとInternational Business Machinesなど)。
  • ユーザーが失業している場合はどうなりますか?

Companyが必須または物事を壊すデータではなく、知っておくと便利なデータである場合は、おそらく最初にユーザーをサインアップします。次に、ユーザーがログインしたときに、追加情報を取得するためにユーザーをナグすることができます。これには、ユーザー登録の煩わしさが軽減されるという追加の利点があります。

ユースケース:

  • ユーザーが送信usernameしてpassword
  • 悪いものの入力をフィルタリングし、重複、適合性を検証します
  • dbに保存し、ユーザーPKを取得します
  • 「追加情報」ページをロードし、セッション変数を「nag」フラグとして設定します-ユーザーが追加情報を入力しないことを選択した場合、nagフラグはリマインダー動作をトリガーできます
  • ユーザーが既存のCompanyテーブルエントリを使用できるように、Companyフィールドにオートコンプリートを追加します
  • フォームを処理してdbに保存
    • 会社を追加してユーザーを関連付ける
    • または単にユーザーを関連付ける
  • あなたのウェブサイトがナグを続けないようにセッションナグフラグを設定解除します
于 2012-07-26T15:27:27.717 に答える
0

あなたの会社をテーブル会社に挿入し始めます。IDを戻します。( のような sql requete がありLastInsertIdます) user/password/IdCompagny をテーブル user に挿入します。

編集: ヘルプ: http://dev.mysql.com/doc/refman/5.0/en/getting-unique-id.html

于 2012-07-26T14:56:23.843 に答える