2017-06-29 103 views
0

我正在建立一个问题和答案网站,我有两个表截至目前(问题和答案)我需要答案表的id字段是问题表中的外键,所以我可以有多个答案链接到一个问题。当我把不空的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

欢迎来到Stack Overflow。你可以用'{}'工具栏按钮格式化源代码。这次我为你做了。 –

+0

因此,PHP代码不起作用......你不认为这是我们需要看到的部分吗?它产生了什么错误? – Jacobm001

+1

使用您当前的设计,问题可以有零个或一个答案,答案不一定需要问题。如果你想要一个测验类型的应用程序,你的设计就会颠倒过来。如果你想要1个问题1个答案的应用程序,你并不需要两个表。 –

回答

3

表格“答案”是不是有外键参考问题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

我复制并粘贴您的表到我的系统和订单工作正常,但对于答案表我得到了“错误1064(42000):您的SQL语法错误;检查对应于您的MySQL服务器版本的手册(a_id) ,外键(q_id)引用问题(q_id) )在'第5行' – do734

相关问题