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

时间:2014-02-02 17:38:53

标签: database data-structures data-modeling

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

我们假设。

我在这样的数据库中有一个表:

表:设备

id: AUTO_INCREMENT
model: INT (FK)
code: VARCHAR(30)
code_type: VARCHAR(20)

code_type的值可以是两种类型的信息:TYPE1_ID或TYPE2_ID。

代码列根据 code_type 采用不同的值。

如果 code_type的值为“TYPE1_ID”,则代码列将具有特定值。

并且,如果 code_type的值为“TYPE2_ID”,则代码列将具有其他值。

这是我可以用来存储信息的方式。

另一种方式是:

将数据类型 code_type 修改为INT(FK)。我需要另一张表,作为参考。

像这样:

table:devices

id: AUTO_INCREMENT
model: INT (FK)
code: VARCHAR(30)
code_type: INT (FK)

另一张表是这样的:

table:code_types

id_type_code: INT
description: VARCHAR(40)

id_type_code 是信息类型的ID(TYPE1_ID或TYPE2_ID)。 列描述是关于什么类型的。

最后,问题是:

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

提前致谢。

1 个答案:

答案 0 :(得分:0)

最佳答案取决于您对数据的处理方式。分离出code_types表是一种更规范化的形式 - 但如果您的所有查询都需要显示code_type描述,那么您将不得不经常加入。既然听起来像code_type只有两个值你考虑过使用bit / bool吗?