【问题标题】:MySQL Table where each "data" have different amount informationsMySQL表,其中每个“数据”都有不同的数量信息
【发布时间】:2020-08-05 22:20:09
【问题描述】:

如果标题写得很奇怪,首先抱歉。 我需要一个学校项目制作一个抽认卡游戏网站,我需要将我所有的抽认卡问题存储在 mysql 数据库中。 所以我想创建一个包含我所有的抽认卡的表格:

"flashcard id"
"flashcard name"
"creator"
(and from now i will have different amount of questions)
"question 1:answer"
"question 2:answer"
"question 3:answer"
etc....

我正在使用 phpMyAdmin,可能是最新版本的 php 和 mysql。

【问题讨论】:

  • 那里应该有 1:N 的表关系。
  • 好的,但是.... 怎么做?我是 MySQL 初学者

标签: mysql database phpmyadmin


【解决方案1】:

我猜你至少需要两张表: 表一

CREATE TABLE flashcard 
(id INT NOT NULL AUTO_INCREMENT, 
name VARCHAR (25) NOT NULL, 
creator VARCHAR (10) NOT NULL,
PRIMARY KEY (id)); 

在第二个表中,我将存储问题,这是 Impaler 的答案对我有意义的时候,1:N 是一对多的关系,因此对于一张抽认卡可能有很多(或几个)相关的问题。您使用外键创建 1:N

CREATE TABLE questions
(id INT NOT NULL AUTO_INCREMENT, 
name VARCHAR (25) NOT NULL, 
flashcard_id INT NOT NULL
CONSTRAINT fk_flashcard1
    FOREIGN KEY (flashcard_id)
    REFERENCES flashcard (id)
    ON DELETE CASCADE
    ON UPDATE CASCADE)

为了收集您的答案,我将创建第三个表,一个指向 questions.id 的外键

请注意,我也是初学者。 对于 questions.name 我选择了 VARCHAR (25) 但它实际上取决于字符串长度

【讨论】:

  • 你忘了在flashcard_id INT NOT NULL 后面加上, 但即使我修复了它,我也无法创建它,因为我收到了这个:#1075 - Only one automatic field is allowed and it must be indexed(我从法语翻译过来)跨度>
  • 可能是这张表的PRIMARY KEY(id),在flaschcard_id和约束FK之间,抱歉忘记了
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-31
  • 2012-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多