ユーザーが連絡先情報とユーザー名とパスワードを入力する登録ページ。私は2つのテーブルを持っています.1つはusernameとpasswordのためのもので、contactinfoという外部キーと、私はusersテーブルと結合したい連絡先情報のテーブルを持っています。外部キーと主キーの両方を自動インクリメントに設定する必要がありますか?どのようなタイプの参加が必要ですか?
ありがとう
ユーザーが連絡先情報とユーザー名とパスワードを入力する登録ページ。私は2つのテーブルを持っています.1つはusernameとpasswordのためのもので、contactinfoという外部キーと、私はusersテーブルと結合したい連絡先情報のテーブルを持っています。外部キーと主キーの両方を自動インクリメントに設定する必要がありますか?どのようなタイプの参加が必要ですか?
ありがとう
両方のプライマリキーを自動インクリメントに設定します。連絡先情報テーブルとあなたの完了にユーザーテーブルからの外部キーを追加します。外部キーはとなりません。の自動インクリメントは、すべてになります。別のテーブルの値にを参照してください。
DoctrineのようなORMを使用している場合、user
とcontactinformation
の関係は自動的に処理されることに注意してください。それ以外の場合は、連絡先情報を最初に挿入し、生成された主キー(たとえばmysql_insert_id
経由)を取得して、user
テーブルに挿入します。
、ユーザのテーブルが持つべき:
他のテーブルがあります。
あなたは "左結合"
LEFTは、キーワードを返すすべての行をJOINを使用する必要があります(これは、他のテーブルにこの行をリンクします)右側のテーブル(table_name2)に一致するものがなくても、左側のテーブル(table_name1)から取得します。 (w3schools)
私たちはusersテーブルを "left table"、情報を "right table"としています。ユーザーはまだ情報が設定されていないかもしれませんが、アカウントを持っています。私たちは、アカウント(「左」)必ずしも必要ではない情報(「右」)している - ジョブに参加
のような音をLEFT JOINをし、あなたのSQLは、おおよそのため
SELECT "columns" FROM table1
LEFT JOIN table2 ON table1.userid = table2.userid
//where "columns" are the columns you want to get
//from the tables in "table.column" notation like: user.username or info.mobile
こんにちはおかげのようになります。返事、これは私がすでに持っているものです。私の混乱は、データベースにデータを追加するときから来ています。私はユーザーのテーブルにユーザー名とパスワードを挿入しますが、次に名前のメールアドレスなどを追加するために行をリンクします – Biscuit128
私の答えにいくつかの情報を追加しました。 – Perception
私は生成された鍵を取得する必要があると言います - いつも正しい鍵を返すことを確実にする方法はありますか? – Biscuit128