• 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).