鉴于以下关系:
school =(teacherID, list of kids)
我需要将其转换为First Normal Form。我的想法是,我有一个用于teacherID的桌子然后有一个儿童桌,每个孩子都有一个kidID。然后我可以将每个kidID连接到正确的teacherID。这会解决1NF问题吗?
它会,但它也会把它变成第二种正常形式,这可能是或可能不是你想要的。
如果出于某种原因,你只想要它在第一范式中,那么你只需要它就可以没有包含多个数据项的单元格。在这种情况下,将孩子列表变成一个列,让每个孩子都有教师ID就足够了。
要满足1NF,您只需要拥有原子数据字段,这样就不能将列的信息拆分为两个。
例如,如果您存储教师的信息(teacherid,name),则这不是第一个普通形式,因为您可以将名称拆分为名字和姓氏。
一个字段中的孩子列表不是原子的,因此必须将其拆分为多个记录。所以你需要为每个孩子设一个条目,比如(teacherID,kid1ID),(teacherID,kid2ID),......