私はMySQLデータベースを作成しています。私はそれが新しいので、私は問題に直面している理由です。問題は、親テーブルを参照している外部キーを子テーブルに取り込むことです。私が持っている二つのテーブル次の列子テーブルに外部キーを設定する方法 - MySql
- 主キーとしてIDが含まれている
employee
、 - first_nameの
- last_nameの
- Birth_Dateの
およびはの主キーid
を参照している外部キー
として、次の列
- REF
- 主キー としてemployIdが含まれていますテーブル
employee
テーブル。つまり、同じIDを持つ従業員が複数の書籍を借りることができるということです。いくつかのデータを従業員表に挿入すると、挿入されますが、借用した表にデータを挿入する必要がある場合、employeeId列に値を手動で挿入する必要があります。それは自動的に設定されていないと思いますか?または私は外来キーの概念を誤解しています。私は必要なもの
マイSQLコード
$uname = "root";
$pass = "";
$sname ="localhost";
$db ="nady";
//Making database connection
$con = mysqli_connect($sname,$uname,$pass,$db);
$t1 = "CREATE TABLE IF NOT EXISTS employee (
\t id smallint(5) unsigned AUTO_INCREMENT NOT NULL,
\t firstname varchar(30),
\t lastname varchar(30),
\t birthdate date,
\t PRIMARY KEY (id)
) ENGINE=InnoDB";
$con->query($t1);
$t2 = "CREATE TABLE IF NOT EXISTS borrowed (
\t ref int(10) unsigned NOT NULL auto_increment,
\t employeeid smallint(5) unsigned NOT NULL,
\t book varchar(50),
\t PRIMARY KEY (ref),
\t FOREIGN KEY (employeeid) REFERENCES employee(id) ON UPDATE CASCADE ON DELETE CASCADE
) ENGINE=InnoDB";
$con->query($t2);
if(!$con->query($t2)){
\t echo $con->error;
}
$i1 = "INSERT INTO employee VALUES(NULL,\"Nadeem\",\"Ahmad\",22)";
$con->query($i1);
$i2 = "INSERT INTO borrowed VALUES(NULL,1,\"Ahmad\")";
$con->query($i2);
if(!$con->query($i2)){
\t echo $con->error;
}
シンプル。たとえば、IDが、従業員がの従業員。 3冊の本を借りた人したがって、借用したテーブルでは、employeeId列には、の値を持つ3つの行があり、帳簿名は異なります。私の要点は、employeeId列にデータを挿入するときにemployeeId列をどのように設定するかです。例えば、Johnは3冊の本を借りて、id 1を持っているとしたら、ジョンの従業員IDで借用したテーブルにデータを挿入する方法を教えてください。私はそれのためのクエリが必要です。また、johnが借りている書籍を検索するためのクエリを実行します。
借り手の従業員IDは、従業員が借りた本のIDとともに、借りる人のフォームを使用します。 – Shadow
@Shadow私はフォームを通してそれを設定する必要があります。この人物のIDが1か2か3かなどはどのように分かりますか – Nadeem
IDと従業員の名前を照会します。 – Shadow