我正在为一张登记表准备一张桌子。其中的字段/列如下:
student_no (主键)和年龄
student_no将保存固定长度为9个字符的值,其中包含8个数字和一个破折号,例如11-423685、12-537859、12-974156。
我不确定是使用char还是varchar,因为在使用它们之前,我想知道更多关于这两种类型的信息。具体而言:
至于年龄,如果我使用tinyint,是否需要指定长度?还是应该将phpMyAdmin中的length字段保留为空?
注:这实际上只是一项学校练习,教学内容是用十四个字段制作一份工作登记表,所以我决定暂时不使用生日,以避免使用日期。
发布于 2012-12-02 01:59:35
INT不允许任何非数字格式设置。VARCHAR有。
但是,使用INT表示学生编号仍然更好,因为INT将导致更快的搜索。
您可以使用格式显示输出上带有连字符的学生编号。数据库应该以其最有效的格式(未格式化的数字)存储它。
另外,我建议您使用日期来存储birth_date,而不是使用数字年龄。这将防止随着时间的推移,随着年龄的变化而产生的问题。同样,您可以根据输出计算年龄以供表示。
发布于 2012-12-02 02:00:26
CHAR()很奇怪。它是一个固定长度的字符串,如果您试图将其设置为较短的值,则会填充空格。使用它几乎是不合适的--如果你忘记了它的存在,你可能永远不会错过它。
VARCHAR()的工作方式在很大程度上是你所期望的。它可以包含任何字符串(带有任何字符),直到它的最大长度。
不要储存年龄。存储出生日期(使用类似于DATE的类型)。但是,如果必须存储一个年龄,则数字类型(如TINYINT)的长度几乎是没有意义的,应该保留为空白。
https://stackoverflow.com/questions/13665713
复制相似问题