在数据库中表示三选项的最佳方式是啥?

     2023-02-24     159

关键词:

【中文标题】在数据库中表示三选项的最佳方式是啥?【英文标题】:What is the best way to represent a three-choice option in a database?在数据库中表示三选项的最佳方式是什么? 【发布时间】:2012-07-09 14:10:56 【问题描述】:

我有一个只能处于三种状态的对象列表。

数据的简化示例:

Substance State
H2O  solid
H2O  fluid
CO2  gas
...  ...

使用TINYINT(2)ENUM 或其他什么更好?我应该按原样插入值(VARCHAR)还是使用数字?外部值表?

【问题讨论】:

【参考方案1】:

我会通过 ID 引用外部表。然后该表将信息显示为文本。 在您的选择语句中,您只需加入即可。如果你不知道我在说什么,可以问我一个例子:)

不过,出于各种原因,我不会使用 ENUM。在这里找到最重要的:http://komlenic.com/244/8-reasons-why-mysqls-enum-data-type-is-evil/

【讨论】:

如果需要,请设置为最佳答案或投票?谢谢你:)【参考方案2】:

任何内容都不会存储在少于一个字节中。

TINYINT(2) 和具有 3 个成员的 ENUM 都将产生 1 个字节的存储空间。两者都可以。

ENUM 的好处是您可以使用简单的英文名称,并且它们存储紧凑。 ENUM 的坏处是它们不是 ANSI SQL。

【讨论】:

对不起,我对这些东西很陌生。 > ENUM 的好处是……它们存储紧凑。更紧凑?我的数据库中有大约 10 个这样的字段,将选择存储在 ENUM 中而不是外部表中会更好吗? 如果你有 1 到 255 个选项,MySQL 将使用 1 个字节。如果您有 256 到 32,767 个选项,MySQL 将使用 2 个字节。 我指的是另一种领域。例如。状态(固体、流体、气体)、颜色(红、绿、蓝)、尺寸(小、中、大)等【参考方案3】:

创建一个主表作为状态(id int,desc varchar), 根据问题 它会有

id   |  desc
1    |  Solid
2    |  Liquid
3    |  Gas

并在解决方案(主)表中引用状态表的 id

【讨论】:

我的数据库中大约有 10 个这样的字段,对性能来说还可以吗?【参考方案4】:

我认为您可以将信息存储在 BIT 类型的列中,并允许在

列。以下是价值与你的数据的映射。

H2O 固体 --> 是的

H2O 流体 --> 错误

二氧化碳气体 --> NULL

【讨论】:

这有什么下降的原因吗?? 可能是因为 BIT 和 TINYINT 之间的差异为零,同时过于 hackish。对于一些值,ENUM 仍然是更好的整体答案。 是的,但是使用 BIT 有什么问题?? ***.com/questions/488811/tinyint-vs-bit 因为使用 NULL 来表示一个实际值,总有一天你会在 TDWTF 中受到当之无愧的嘲讽。对于实际的二进制列,没问题,除非它们被扩展。 因为几乎可以肯定的是,下周将弹出存储“CO”的要求,而您被卡住了。所有假设可以为空的 BIT 的报告都必须重做,等等......

在 Scheme (R6RS) 中表示代数数据类型构造函数的惯用方式是啥?

】在Scheme(R6RS)中表示代数数据类型构造函数的惯用方式是啥?【英文标题】:WhatistheidiomaticwaytorepresentalgebraicdatatypeconstructorsinScheme(R6RS)?在Scheme(R6RS)中表示代数数据类型构造函数的惯用方式是什么?【发布时间】:2021-07-0621:46:19... 查看详情

说电子商务商店在关系数据库中表示嵌套子类别的最佳方法是啥[关闭]

】说电子商务商店在关系数据库中表示嵌套子类别的最佳方法是啥[关闭]【英文标题】:whatisthebestwaytorepresentnestedsubcategoriesinrelationaldatabaseforsayecommerceestore[closed]说电子商务商店在关系数据库中表示嵌套子类别的最佳方法是什么[... 查看详情

在固定长度向量中表示文档集合的最佳方法是啥?

】在固定长度向量中表示文档集合的最佳方法是啥?【英文标题】:Whatisthebestwaytorepresentacollectionofdocumentsinafixedlengthvector?在固定长度向量中表示文档集合的最佳方法是什么?【发布时间】:2019-10-2711:14:46【问题描述】:我正在... 查看详情

在 TabNavigator 中隐藏选项卡的最佳方法是啥?

】在TabNavigator中隐藏选项卡的最佳方法是啥?【英文标题】:What\'sthebestwaytohideatabinaTabNavigator?在TabNavigator中隐藏选项卡的最佳方法是什么?【发布时间】:2010-10-2406:39:51【问题描述】:我想有条件地隐藏TabNavigator中的选项卡。... 查看详情

在 mysql 数据库中存储 10 个选项的最佳方法是啥?

】在mysql数据库中存储10个选项的最佳方法是啥?【英文标题】:Whatisthebestwaytostore10optionsinamysqldatabase?在mysql数据库中存储10个选项的最佳方法是什么?【发布时间】:2010-11-2516:06:14【问题描述】:我正在修改我的PHP网络的代码,... 查看详情

在 Redshift 中存储事件数据的最佳方式是啥?

】在Redshift中存储事件数据的最佳方式是啥?【英文标题】:What\'sthebestwaytostoreeventdatainRedshift?在Redshift中存储事件数据的最佳方式是什么?【发布时间】:2017-07-2304:19:07【问题描述】:我是Redshift新手,正在寻找存储事件数据的... 查看详情

通知后端推送通知已被禁用的最佳方式是啥?

...端用户禁用推送通知的最佳方式是什么?我一直在玩一些选项,但我不确定哪个是最好的选择:选项1:检查用户是否在applicationDid 查看详情

在解耦系统之间同步数据的最佳方式是啥?

】在解耦系统之间同步数据的最佳方式是啥?【英文标题】:What\'sthebestwayofsynchronizingdatabetweendecoupledsystems?在解耦系统之间同步数据的最佳方式是什么?【发布时间】:2010-09-2700:51:14【问题描述】:我假设有2个(但将来会变得... 查看详情

在数据库中存储货币价值的最佳方式是啥?

】在数据库中存储货币价值的最佳方式是啥?【英文标题】:Whatisthebestwaytostoreamoneyvalueinthedatabase?在数据库中存储货币价值的最佳方式是什么?【发布时间】:2010-10-1117:01:33【问题描述】:我需要在数据库中存储几个与货币相关... 查看详情

在数据库中存储货币价值的最佳方式是啥?

】在数据库中存储货币价值的最佳方式是啥?【英文标题】:Whatisthebestwaytostoreamoneyvalueinthedatabase?在数据库中存储货币价值的最佳方式是什么?【发布时间】:2010-10-1117:01:33【问题描述】:我需要在数据库中存储几个与货币相关... 查看详情

在 UNIX 进程之间交换适度大量数据的最佳方式是啥?

】在UNIX进程之间交换适度大量数据的最佳方式是啥?【英文标题】:What\'sthebestwaytoexchangemoderatelylargeamountsofdatabetweenUNIXprocesses?在UNIX进程之间交换适度大量数据的最佳方式是什么?【发布时间】:2013-07-0405:35:37【问题描述】:在... 查看详情

在数据库中保留产品“库存水平”信息的最佳方式是啥?

】在数据库中保留产品“库存水平”信息的最佳方式是啥?【英文标题】:Whatisthebestwaytokeepinfoon\'stocklevels\'foraproductinadatabase?在数据库中保留产品“库存水平”信息的最佳方式是什么?【发布时间】:2020-01-2206:07:23【问题描述】... 查看详情

在多个站点之间共享数据库数据的最佳方式是啥?

】在多个站点之间共享数据库数据的最佳方式是啥?【英文标题】:Whatisthebestwaytosharedatabasedatabetweenmultiplesites?在多个站点之间共享数据库数据的最佳方式是什么?【发布时间】:2016-04-3018:47:40【问题描述】:我正在运行多个网... 查看详情

在核心数据文档中存储文档特定设置的最佳方式是啥?

】在核心数据文档中存储文档特定设置的最佳方式是啥?【英文标题】:WhatisthebestwaytostoredocumentspecificsettingsinaCoreDataDocument?在核心数据文档中存储文档特定设置的最佳方式是什么?【发布时间】:2009-07-2423:49:23【问题描述】:... 查看详情

在 Java 应用程序中保存数据的最佳方式是啥?

...:我正在尝试找到保存简单应用程序状态的最佳方法。从数据库的角度来看,有4/5的表带有日期字段和关系。因为应用程序很简单,并且我希望用户可以选择移动数据(usbpen、dropbox等),所以我想将所有 查看详情

在设备之间共享 iOS sqlite 数据库的最佳方式是啥

】在设备之间共享iOSsqlite数据库的最佳方式是啥【英文标题】:WhatisbestwaytoshareiOSsqlitedatabasebetweendevices在设备之间共享iOSsqlite数据库的最佳方式是什么【发布时间】:2017-12-0404:51:25【问题描述】:我使用Xamarin和Sqlite数据库作为... 查看详情

除了 ROOM,在 Android 中缓存数据的最佳方式是啥?

】除了ROOM,在Android中缓存数据的最佳方式是啥?【英文标题】:WhatisthebestwaytocachedatainAndroidotherthanROOM?除了ROOM,在Android中缓存数据的最佳方式是什么?【发布时间】:2021-05-1703:09:03【问题描述】:这个问题可能是少数人的解决... 查看详情

安装组件的最佳方式是啥?

...装组件是一场噩梦。首先我需要将源文件添加到工具->选项->库那我需要找一个正常的包编译一下最后我需要找到设计时包并安装它。这非常乏味且容易出错。有没有更好的方法来安装组件?我找到了DelphiPacka 查看详情