0

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

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

你能给我的任何帮助,我都会很高兴。提前致谢

4

3 回答 3

1

您可能必须更具体地说明要求,但在我看来,单列是最好的选择——尤其是在订单很重要的情况下。如果字母和数字分别有含义,那么它们应该在两列中。否则,您最终将不得不将它们连接在一起。

char(6)只要您知道它始终是 6 个字符就可以了。无论如何,您都不能在列级别强制执行诸如 2000 到 7000 之类的特定限制(这是 4 个数字,不是吗?)

于 2013-05-04T20:17:30.173 回答
0

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

希望能帮助到你。

于 2013-05-04T20:22:21.383 回答
0

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

这是一个令人惊讶的事实:mysql 不支持 CHECK 约束!

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

如果要强制执行格式,则需要使用触发器,但 mysql 不支持引发异常,因此您必须使用解决方法。

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

于 2013-05-04T20:26:08.613 回答