mysql - 一般mysql表设计建议

标签 mysql

我获得了一些与特定工作的 SLA(服务级别协议(protocol))相关的特定数据集,如下所示。 这里 x 代表小时数。 一旦任务在给定的时间范围内完成,具体级别如下。

Level 1 --- > x>=500

Level 2 --- > 500> x >=400

Level 3 --- > 400> x  >=300

Level 4 --- > 300> x >=200 

Level 5 --- > 100 > x >=200 

我需要获得特定任务的级别,例如:- 如果 x 为 252,则该任务为级别 4。

我已经设计了以下格式的表格,但我不会提供获取任何 x 值的级别的能力。请建议我最好/准确的 mysql 表设计。

enter image description here

最佳答案

您的表设计隐含地假定了一个顺序。在关系数据库中,行没有顺序。没有任何。

所以更好的设计是这些列:

serviceLevel
minimumHours 
maximumHours

然后检索服务级别变得非常容易:

SELECT serviceLevel 
FROM <table> 
WHERE <hours> BETWEEN minimumHours AND maximumHours;

关于mysql - 一般mysql表设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45959167/

相关文章:

java - datetime 和 tinyint 的数据类型查询

mysql - sql MySQL 错误 (1241) 操作数应包含 1 列

php - 当未明确给出新值时,让字段采用另一个字段的值

mysql - "Incorrect MySQL client library version"

php - 在 MySQL 语句中使用下拉菜单和变量进行排序 (PHP)

php - <reference> PHPStorm 上预期的、意外的文件结束

php - 503 表单提交时服务不可用

mysql - 基于数据分组的特定mysql更新

python - python UPDATE 命令中的 0L 或 1L 错误

mysql - 如何在phpMyAdmin中将MySQL版本升级到最新版本?