Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8332829
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 9, 20262026-06-09T02:50:00+00:00 2026-06-09T02:50:00+00:00

Which is good practice? To store data as a comma separated list in the

  • 0

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?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-09T02:50:01+00:00Added an answer on June 9, 2026 at 2:50 am

    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:

    Classes 1:M Enrollments(Class,Student) M:1 Students
    

    Following a properly normalized design will reduce pain. In addition, here are some other advantages:

    • Referential integrity (use InnoDB)
      • Consistent model described with relationships
      • Type enforcement (can’t have "foo,,")
    • JOIN and query without needing custom code
      • “What are the names of the students in class A?”
      • “Who is taking more than one class?”
      • Columns can be useful indexed (query performance)
      • Generally faster than handling locally in code
    • More flexible and consistent
      • Can attach attributes to enrollments such as status
      • No need to have code to handle serialization at access sites
      • More accommodating of placeholders and ORMs
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm wondering if this is a good practice or not. I have a database
I have a little quandary over whether it is good practice to do the
Is it good practice to store sub-collections of item X inside a parent collection
I have a table which will contain various categories. The following is a minified
I've a WPF+WCF application which works good for now 2 years, but now they
I know there are many cases which are good cases to use multi-thread in
Short story: stopPropagation() prevents a dropdown menu from closing - which is good. But
The code I used doesn't give me any MySQL errors (which is good) Except
I set my embedded bespin as below, which works good: _editorComponent = new bespin.editor.Component('editor',
Which is a good Project Managment Method to Develop a Website? XP? The Waterfall

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.