如何在mysql中存储常量

时间:2014-10-20 17:42:15

标签: mysql constants store

我需要在mysql中存储一些常量,以避免子查询或查询非常复杂。

我想知道哪种方式最好。

-----------------------------------
ID      name                value
-----------------------------------
1      constant_name_1        100
2      constant_name_2          0  
3      constant_name_3         12
4      constant_name_4        257
-----------------------------------

我不确定上面写的例子是否是最好的方式,因为我对它有些怀疑。

1)我根本不需要ID字段。我只需要constant_name,所以我不知道它是否是必要的。 2)在大多数情况下,我需要一次知道几个常量的值,而不仅仅是一个。在这种情况下,我不确定如何进行查询。

" SELECT值FROM constants_table WHERE name IN(' constant_name1',' constant_name2',' constant_name3',...)" ??

非常感谢

1 个答案:

答案 0 :(得分:2)

你的方法是合理的。只要name是唯一的,我就会删除ID列(不需要它),并将name列设为PK。

至于查询,我的偏好是使用子查询根据需要一次选择一个值。这是我可以随意思考的“最漂亮”的方式,它是可以优化的:

SELECT myTable.ID, myTable.Name
FROM myTable
INNER JOIN (SELECT value FROM constants_table WHERE name = 'constant_name_1') C1
   ON myTable.ThisValue = C1.value
INNER JOIN (SELECT value FROM constants_table WHERE name = 'constant_name_4') C4
   ON myTable.ThatValue = C4.value