以下情况应该是表结构

时间:2013-01-08 05:24:53

标签: mysql

我有一种情况需要存储“错误类型”,其中包含以下选项

enter image description here

我想知道创建表“Error”的最佳方法是什么。

因此,我选择“ VARCHAR ”数据类型并存储“1,3,4”(逗号分隔)等值,如果选择“Take Off,Details and Legend”并在解析时解析它进入视野

OR

为表格中的每个字段设置单独的列,数据类型为“ TINYINT ”,如“IsTakeOff”,“IsSpecifications”,“详细信息”等。

请咨询

由于

4 个答案:

答案 0 :(得分:0)

除非您非常确信数字不会增长,否则请勿使用多列。

否则使用多对多关联表 - 一个包含项目ID和错误ID的列

答案 1 :(得分:0)

一种方法可能是将它作为一个int来做,然后在你的代码中做类似这样的PHP,我不知道你使用的语言,但大多数语言有一个开关所以它不应该很难翻译成另一种语言。

$row // The row from the database.
switch ($row['Error_Type'])
{
    case ('0'):
        {
            // Do something.
            break;
        }
        ...
}

答案 2 :(得分:0)

你可以在这里使用逗号分隔列varchar,因为你知道没有记录会在这里增长。这仅限于5个值。在搜索字段时,您可以使用MySQL FIND_IN_SET,这对于这种情况非常有效。 FIND_IN_SET将采用两个参数。您的搜索关键字和逗号分隔的字符串。

答案 3 :(得分:0)

如果id为1的用户选择1,3和4,则可以使用以下

enter image description here