2013-05-04 76 views
0

我有一个表,其中我有一个字段,需要3个字母和3个数字(必须介于值2000 & 7000之间)。数字和字母的字段

我一直在阅读,我仍然不确定哪个更好的方法来处理这个问题,它是否可以用一个简单的数据类型,例如char(6),或者如果必须是只包含3个字母的字段,另一个字段包含3个数字并带有检查限制,以确保该字段的值介于2000 & 7000之间。

任何帮助,您可以提供我,我会乐于。在此先感谢

+0

我不知道我是否理解 - 如何使用只有3个数字(/数字)的2000到7000之间的值? – cyroxx 2013-05-04 20:29:30

回答

1

您可能需要更具体地了解这些要求,但听起来对于我来说,像单列是最好的选择 - 尤其是在订单很重要的情况下。如果字母和数字分别具有含义,那么它们应该分成两列。否则,你最终不得不将它们连接在一起。

char(6)很好,只要你知道它会总是准确地说是6个字符。无论如何,您无法在列级别实施2000至7000这样的特定限制(这是4个数字,不是吗?)

0

每个字段都应该表示该表所包含的实体的属性。换句话说,如果这三个字母和三个数字表示不同的属性,则它们应该位于不同的字段中,否则(例如,它们代表序列号),您可以将它们放在一个字段中。 另一种方法是考虑一个可能的用例,例如:我是否会根据第二个数字执行查询?如果你的答案是肯定的,那么他们应该在不同的领域,否则他们代表一个属性,他们应该在一个领域。

希望它有帮助。

0

如果该值是“一”值,使用一列,说char(6),但是......

这里有一个令人惊讶的事实:MySQL不支持CHECK约束!

Mysql允许CHECK约束被定义,但是它们被完全忽略并且只允许与其他数据库中的SQL进行比较。

如果你想强制执行一个格式,你需要使用触发器,但是mysql不支持引发异常,所以你必须使用解决方法。

最好的选择可能是使用应用程序代码进行验证。