我需要为学生创建一个表格,其 ID 以 M 或 I 开头,然后是 7 位数字。我考虑创建一个表,其中一个字段选择字母 M 或 I,第二个字段选择 7 位数字。然后我将使用它们来创建复合主键。但我不认为这就是我要寻找的。我想要一栏用于学生 ID。
这是我到目前为止所拥有的:
create table student(
student_id_first ENUM('M', 'I')
, student_id_digits char(8) not null unique
, first_name varchar(50)
, last_name varchar(50)
, Primary Key(student_id_first, student_id_digits)
) ;
想法?
谢谢。
最佳答案
您不应该将数据验证放在数据库层中。您还创建了一个复合键,这会增加额外的、不必要的开销。如果在某些时候您需要调整或放宽规则,则需要重新定义数据库架构。
在检索数据并必须组装实际的学生标识符时,这也会带来毫无意义的复杂性。除非您有充分的理由将它们分开,否则请将它们放在一起。
只需使用一列并强制执行应用程序中的内容。即使是非常基本的 ORM 也能让您做到这一点。
关于mysql - 创建一个学生ID以字母开头的表 - mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12169838/