gpt4 book ai didi

php - 具有许多选项的 MySQL 数据类型

转载 作者:行者123 更新时间:2023-11-29 00:06:46 25 4
gpt4 key购买 nike

我正在创建一个 MySQL 表来存储用户信息。如果一个信息是用户的毕业年份,从 1970 年到 2014 年,最好的数据类型是什么?我希望这个值可以让用户在注册时选择毕业年份。
我打算像这样使用枚举。 grdYr ENUM('70','71','72', ... '14'),但是 MyAQL maual建议不要使用数字作为枚举值。只需添加像这样的字符 grdYr ENUM('s70','s71','s72', ... 's14') 就可以解决问题吗?

此外,如果我以后要添加更多值,例如 15 年级、16 年级等每年学生毕业时,每次更改表格是否是完成此操作的唯一方法?据我所知,这似乎是唯一的方法,但改变表格听起来像是我不应该做的事情。

请帮忙!

最佳答案

首先,你应该使用多个表和外键而不是ENUM .您还应该以 4 位数字格式存储任何年份,而不是 2 位数字。因为...如果您需要添加 2070 年怎么办?

其次,使用DATETIMEDATE日期列的类型。或者,使用 VARCHAR , INT , TINYINT对于像您这样的数字(我仍然更喜欢日期类型)。不要制作只包含用户毕业年份的表(甚至是单列 BY ENUM)。通过您的 HTML/PHP 代码验证它。做一个<select>使用特定选项并通过它进行验证。

HTML:

<select>
<option value="1970">1970</option>
<option value="1971">1971</option>
<option value="1972">1972</option>
...
<option value="2013">2013</option>
<option value="2014">2014</option>
</select>

PHP:

$arrayWithYears = array();

foreach($i = 1970; $i <= 2014; $i++) {
$arrayWithYears[] = $i;
}

if(in_array($iSubmittedValue, $arrayWithYears)) {
// TRUE
} else {
// FALSE
}

关于php - 具有许多选项的 MySQL 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27165803/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com