Database 存储特定类型信息的最佳方式

Database 存储特定类型信息的最佳方式,database,data-structures,data-modeling,Database,Data Structures,Data Modeling,我的问题是,在数据库中使用特定类型信息的最佳方式是什么 让我们假设一下 我在数据库中有一个表,如下所示: 表:设备 id: AUTO_INCREMENT model: INT (FK) code: VARCHAR(30) code_type: VARCHAR(20) id: AUTO_INCREMENT model: INT (FK) code: VARCHAR(30) code_type: INT (FK) 代码类型的值可以是两种类型的信息:类型1\u ID或类型2\u ID 列代码根据代

我的问题是,在数据库中使用特定类型信息的最佳方式是什么

让我们假设一下

我在数据库中有一个表,如下所示:

表:设备

id: AUTO_INCREMENT
model: INT (FK)
code: VARCHAR(30)
code_type: VARCHAR(20)
id: AUTO_INCREMENT
model: INT (FK)
code: VARCHAR(30)
code_type: INT (FK)
代码类型的值可以是两种类型的信息:类型1\u ID或类型2\u ID

代码根据代码类型采用不同的值

如果代码类型的值为“TYPE1\u ID”,则列代码将具有特定值

并且,如果代码类型的值是“TYPE2\u ID”,则列代码将有另一个值

这是一种我可以用来存储信息的方法

另一种方法是:

将数据类型修改为INT(FK)。我还需要另一张桌子来做参考

像这样:

表:设备

id: AUTO_INCREMENT
model: INT (FK)
code: VARCHAR(30)
code_type: VARCHAR(20)
id: AUTO_INCREMENT
model: INT (FK)
code: VARCHAR(30)
code_type: INT (FK)
另一张桌子是这样的:

表:代码类型

id_type_code: INT
description: VARCHAR(40)
id\u type\u code是信息类型(TYPE1\u id或TYPE2\u id)的id。 列描述是关于什么类型的

最后,问题是:

存储数据的最佳方式是什么?基于上述背景。 或者,你能告诉我另一种更好的储存方式吗


提前感谢。

最佳答案取决于您对数据的处理方式。分离代码类型表是一种更规范化的形式——但是如果所有查询都需要显示代码类型描述,那么您必须不断地加入。因为听起来代码类型只有两个值,所以您考虑过使用bit/bool吗?

您应该解释您试图做什么,然后解释解决方案。在这里,您要求我们在没有解释您试图建模的内容的情况下对解决方案进行注释。在这种情况下,我不需要显示代码类型描述。描述只是为了知道它是什么。对我会用布尔运算。但是,想象一下我描述的这个案例。我正在使用Java,我需要知道在我的代码中,它是什么类型的。但是,我不知道比较这些值的最佳方法。当我必须查询表devices中的设备并返回时,最好的方法是使用String或Integer进行比较?谢谢整数的比较总是比字符串快。如果我用where子句进行查询,使用integer比字符串快,对吗?是的,字符串必须逐个字符进行比较,直到找到一个不同的字符串。一个整数比较一次。