为什么我不应该使用具有“set”数据类型的字段?替代布局?

时间:2011-02-12 04:04:09

标签: sql mysql types

我一直在设计我的数据库布局,我想我需要一种方法在一个字段中放置多个条目。我想为数据库中的每个学生创建一行,我希望其中一个字段包含他们的类。我不想做一堆单独的字段,因为学生没有一定数量的课程,它可以有所不同。我在SET数据类型上reading up,并阅读了有关为何不使用SET的段落。我想知道是否有人可以对此进行更“英语”的解释,或者如果它确实可以使用那么告诉我。如果不是,那么有人可以为当前情况建议更好的布局吗?非常感谢,一如既往!

2 个答案:

答案 0 :(得分:4)

您可能希望将类存储为单独的实体。为此,您需要另一个表来存储类,并使用第三个表来链接这两个表:

学生:身份证,姓名,年龄......

课程:身份证,姓名,时间,教授......

student_class:student_id,class_id

然后您将使用JOIN查询来检索数据。

答案 1 :(得分:0)

使用SET,您必须预定义所有可能的值。您可能需要TEXT类型数据类型,并使用某些分隔符(如分号或其他分隔符)分隔值。