AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 167504
Accepted
User1974
User1974
Asked: 2017-03-18 15:58:37 +0800 CST2017-03-18 15:58:37 +0800 CST 2017-03-18 15:58:37 +0800 CST

将评级存储为范围的标准(1-5、1 最好等)

  • 772

我正在设计一个包含字段的ROAD_INSPECTION表:CONDITION

+---------+-----------+
| ROAD_ID | CONDITION |
+---------+-----------+
|       1 |         2 |
|       2 |         5 |
|       3 |         1 |
|       4 |         1 |
|       5 |         4 |
+---------+-----------+

是否有任何标准或惯例建议如何将评级格式化为范围?

例如,CONDITION评级的最佳格式是什么?

  • 0到5,零最好
  • 0到5,5最好
  • 1到5,一个最好
  • 1到5,5最好

database-design fields
  • 6 6 个回答
  • 281 Views

6 个回答

  • Voted
  1. Best Answer
    McNets
    2017-03-28T15:32:04+08:002017-03-28T15:32:04+08:00

    经验法则: 越高越好。

    综上所述,我建议使用查找表来存储评级定义。也许对于某个特定问题,您想使用 0 到 5 的评分,但明天您可能需要更大或更低的比率。

    或者只是您想更改每个选项的名称。

    1. 兴高采烈
    2. 快乐的
    3. 冷漠
    4. 不开心
    5. 悲惨的

    使用查找表,您可以为不同的目的选择不同的选项。有时您需要 5 个选项,有时需要 10 个,有时需要 2 个。

    不要用 5 个选项来限制自己。

    生活有很多味道:

    o 正确
    o 错误
    o 不知道/不回答

    • 4
  2. RDFozz
    2017-03-18T21:42:26+08:002017-03-18T21:42:26+08:00

    我不知道这类事情有任何官方标准。我倾向于根据在您的情况下最容易处理的内容来判断 5 是最差还是最好。

    1-5 的等级是最常见的。如果你想要一个单独的值来表示没有答案(或者响应者表示问题不适用于他们),我会使用 NULL 而不是 0;这使得在计算中忽略这些响应变得容易(因为聚合函数就是这样做的)。

    此外,请记住将应用于该领域的任何常用内容。例如,美国的医院和医生办公室通常会要求患者按照 0-10 的等级对他们的疼痛进行评分(0 = 没有疼痛,10 = 可以想象到的最严重的疼痛)。

    • 3
  3. Michael Green
    2017-03-28T15:11:44+08:002017-03-28T15:11:44+08:00

    最终用户会在报告和屏幕上看到的数字还是其他值的占位符?

    作为占位符(即 CONDITION 表的外键),所使用的值并不重要。例如,当用户看到“差”、“一般”、“好”、“好”和“优秀”时,幕后使用的整数可以是任何东西。不值得花太多时间来决定。

    如果最终用户将看到该号码,则遵循常见用法。行业有标准吗?公司内部有通用的用法吗?跟着那个。

    大多数计算机以外的人不会标记项目或从零开始计数。避免那样。在英语中,“priority 1”或“1st class”表示该项目位于队列的头部。在确定排名时遵循该惯例。

    请注意,范围 0-5 和 1-5 具有不同数量的桶。确保您的选择符合用户的粒度。

    • 3
  4. Sir Swears-a-lot
    2017-03-29T17:29:57+08:002017-03-29T17:29:57+08:00

    我会专注于您要衡量的内容。排名应该是直观的。

    IMO 你衡量的东西越多,这个数字就应该上升。因此,如果您要衡量这条路有多好,我会选择 0-5:越高越好。

    如果您要衡量道路的糟糕程度或损坏程度,我会选择 0-5:越高越差。

    我个人认为应该使用 NULLS 来反映未知或没有答案。如果您将其默认为一个值,您可能会歪曲报告,并使查找缺失的评估变得更加困难。

    但是:如果您要更换或升级现有系统,我会坚持使用他们现在拥有的任何系统,除非用户特别想要不同的东西。否则,您将不得不在迁移时转换数据,并在实施该系统时管理培训问题。“如果它没坏,就不要修理它”。

    • 2
  5. BradC
    2017-03-31T08:45:47+08:002017-03-31T08:45:47+08:00

    其他一些答案表明,使用的实际值并不那么重要,只要它们在表单、查询或报告中显示时正确映射到它们的“含义”即可。

    我强烈建议这不是真的,或者至少不会长期如此。

    为什么?因为我保证有人会要求您提供显示“平均”状况评级的报告:

    • 我们今天的平均路况(在所有道路上)比去年的今天好吗?
    • 哪些道路在整个长度上的平均评级最差和最高?
    • 镇上哪些地区的平均状况评级最差和最好?
    • 是否有检查员对同一条道路的评价始终比其他检查员差或好?

    以及管理层喜欢问的其他一百个问题。除非您的评级是数字的(并且严格按升序或降序排列),否则您将无法执行这些计算。

    也就是说,我不知道这样做有任何行业标准,您只需要在您的方法中尽可能保持一致。

    例如,一项不断翻转 5 是“好”还是“坏”的调查令人困惑:

    • 您对用餐的满意度如何?(1=非常满意,5=一点都不满意)
    • 你的服务器友好吗?(1=不太友好,5=非常友好)

    所以选择一个并坚持下去。

    • 2
  6. Grimaldi
    2017-03-31T11:37:32+08:002017-03-31T11:37:32+08:00

    我建议您查看完整的问卷撰写指南中关于“评分量表”的部分:

    • 匹配人们的想法。如果它是 'bad', 'soso', 'good' 使用那个
    • 评级是关于左倾还是右倾?使用某种形式的角度。
    • 是关于道路类型吗?使用 OpenStreetmap 类别
    • 允许介于两者之间的值吗?使用数字,否则不要使用数字。
    • 它是两极的吗?使用 -2, ..., 2
    • 使标尺长度合理。越短越好。

    你打算如何使用评级?您是否需要计算平均值、最小值或最大值等聚合?然后用数字。如果这没有意义,请不要使用数字。

    您期望什么样的 where 子句?代码看起来如何,您的设计如何有助于避免错误,您的设计选择是否支持代码的意图很容易传达?

    最后但并非最不重要的一点是:为清晰和更少的错误而设计,稍后进行优化。

    希望这可以帮助

    • 2

相关问题

  • 过滤索引是否有助于改进基于输入时间的查询,还是应该避免这种情况?

  • MySQL VARCHAR 和 TEXT 数据类型有什么区别?

  • 存储计算值或根据要求重新计算它们更好吗?[复制]

  • 存储与计算聚合值

  • 在数据仓库中实现多对多关系有哪些方法?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve