php - MySQL Rank 升级要求

标签 php mysql sql

我正在为武术学校创建一个等级和要求表。

每个学生都拥有武术等级。存储等级名称、腰带颜色和等级要求。每个等级都会有许多等级要求。每个要求都被视为仅针对引入该要求的级别的要求。每个要求都与特定的等级相关联。除白带外的所有级别都至少有一项要求。

我的 ER 图:

Rank and Requirement ER Diagram

排名表:

CREATE TABLE IF NOT EXISTS `rank` (
  `rank_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `rank_nme` VARCHAR(45) NOT NULL,
PRIMARY KEY (`rank_id`))
ENGINE = InnoDB;

输出:

+------------+--------------+----------------+
| rank_id    | INT(10)      | AUTO_INCREMENT |
+------------+--------------+----------------+
| rank_nme   | VARCHAR(45)  |                |
+------------+--------------+----------------+

要求表:

CREATE TABLE IF NOT EXISTS `requirement` (
  `req_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
  `rank_id` INT UNSIGNED NOT NULL,
  `req_nme` VARCHAR(45) NOT NULL,
  `req_rank_nme` VARCHAR(45) NULL,
  PRIMARY KEY (`req_id`),
  INDEX `requirement_rank_id_idx` (`rank_id` ASC),
  CONSTRAINT `requirement_rank_id_idx`
  FOREIGN KEY (`rank_id`)
    REFERENCES `rank` (`rank_id`)
    ON DELETE RESTRICT
    ON UPDATE CASCADE)
ENGINE = InnoDB;

输出:

+---------------+--------------+----------------+
| req_id        | INT(10)      | AUTO_INCREMENT |
+---------------+--------------+----------------+
| rank_id       | INT(10)      |                |
+---------------+--------------+----------------+
| req_nme       | VARCHAR(45)  |                |
+---------------+--------------+----------------+
| req_rank_nme  | VARCHAR(45)  |                |
+---------------+--------------+----------------+

如果我做得对或错或者你们有修改或任何建议,需要帮助!谢谢!

最佳答案

首先,在第一个表中,您将需要一个唯一且自动递增的 id,以实现数据库良好实践。然后使用rank_id、rank_name。如果您想将排名与用户关联,则需要另一个外键来执行此操作。 user_id 来自 users.id 。

现在你的rank_id会递增,但我不认为这样做有什么意义。其余的我认为还可以。

关于php - MySQL Rank 升级要求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22348724/

相关文章:

php - 在codeigniter中如何使用ajax登录后重定向

php - $_COOKIE 如何检查它是否已设置?

mysql - Python MySQL Docker 连接

mysql - Qt 不加载任何数据库驱动程序

php - 使用 Laravel Mix 编译时出错 - Vue

php - 无法使用 PDO 从 MySQL 中获取多行

sql - 查看以识别分组值或对象

mysql - SQL - 试图判断查询的哪一部分与 'OR' 语句匹配

sql - 子查询的结果可以与自身连接吗?

php mysql 查询后过滤