Which is good practice? To store data as a comma separated list in the database or have multiple rows?
I have a table for accounts, classes, and enrolments.
If the enrolment table has 3 fields: ID, AccountID and ClassID, is it better for ClassID to be a varchar containing a comma separated list such as this: “24,21,182,12” or for it to be just an int and have one entry per enrolment?
tldr: Don’t do this. That is, don’t use a “packed array” here.
Use a correctly normalized design with “multiple rows”. This is likely a good candidate for a Many-to-Many relationship. Consider this structure:
Following a properly normalized design will reduce pain. In addition, here are some other advantages:
"foo,,")