2017-06-29 10 views
0

私は質問と回答のサイトを構築していますが、今のところ2つのテーブルがあります(質問と回答)回答テーブルのidフィールドが質問テーブルの外部キーになるように複数の回答をリンクできます一つの質問。私はnullを入れないと、PHPコードは動かないだろうか?ここに私のテーブルです:外部キーがintでなければならないときは "NULL"と言っていますか?

create table answers (
    a_id int not null auto_increment, 
    answer varchar(100) not null, 
    primary key (a_id) 
); 

create table questions (
    q_id int not null auto_increment, 
    question varchar(100) not null, 
    a_id int, 
    primary key (q_id), 
    foreign key (a_id) references answers (a_id) 
); 

私は、ユーザーが自分の質問にすべての答えを見ることができ、外部キーのセクションに番号を持っている必要があります。私は何時間も何時間もオンラインで検索したので、私はstackoverflowに来ました。私は誰かが助けることを願っています

+1

ようこそスタックオーバーフロー。 '{}'ツールバーボタンでソースコードを書式設定することができます。私は今度あなたのためにそれをしました。 –

+0

PHPコードは機能しません...あなたはそれが私たちが見なければならない部分だと思いませんか?どのようなエラーが生成されますか? – Jacobm001

+1

あなたの現在のデザインでは、質問には0または1つの回答が含まれ、答えに質問がある必要はありません。クイズタイプのアプリが必要な場合は、デザインが逆になります。 1つの質問1回答アプリが必要な場合は、本当に2つのテーブルは必要ありません。 –

答えて

3

テーブル "answers"は、外部キーが質問a_idを参照するものではないでしょうか?以下、このような何か:

create table questions (
    q_id int not null auto_increment 
    , question varchar(100) not null 
    , primary key (q_id) 
); 

create table answers (
    a_id int not null auto_increment 
    , answer varchar(100) not null 
    , q_id int not null 
    , primary key (a_id) 
    , foreign key (q_id) references questions(q_id) 
); 

はおそらく、私は何かが足りないんだけど、それは私の考えです。

+1

ありがとうございます。私は数時間前にこれを試してみましたが、同じ結果が得られたと思いますが、もう一度試してみます。 – do734

+0

それはあなたのためにうまくいかない場合は、それはおそらくあなたが書いている/データを読んでいる方法です、私は助けるために多くの情報が必要です。 – NicKJones

+1

私のシステムにあなたのテーブルをコピー&ペーストしたところ、注文はうまくいきましたが、回答テーブルは "ERROR 1064(42000):SQL構文に誤りがあります。 'プライマリキー(a_id)の近くで使用するための正しい構文、外部キー(q_id)は質問(q_id) を参照しています' '5行目で " – do734

関連する問題