• Steve Thompson-454462 (5/3/2012)


    patrickmcginnis59 (5/3/2012)


    Steve Thompson-454462 (4/27/2012)


    I'm curious as to why an attribute such as Student is getting it's own table. Is there more Student-related data that needs to be tracked?

    I would have a person table and a student table, this way you could have rows for people who aren't students.

    In my full post I recommend having a Person table (which would contain all People) and a PersonType lookup table that would contain the "roles" a person could have - there could be a Many-to-Many relationship between the tables if a Person is allowed to have multiple roles.

    So, in that design, you could very easily store People who are not Students.

    My issue with tracking the attribute "student" through a dedicated table was one of scalability: as you add roles you'd have to add the equivalent number of tables; in other words, adding a new role requires a schema change. In the lookup table design, adding a new role simply involves a data change (adding a row to the lookup table).

    I think thats fine if you are only storing the role and thats as far as you go with it, so I'm ok with this. If you are going to store additional info regarding the persons role as a student then the student table makes sense.