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 8749131
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T12:38:36+00:00 2026-06-13T12:38:36+00:00

I am trying to design a Database for a music-taste-sharing web application. I pretty

  • 0

I am trying to design a Database for a music-taste-sharing web application.

I pretty much never have to do Db design/architecture and thought I’d get some help from SO users and hopefully my question could become a nice example of “good” Db design practices.

FYI: The ERD was drawn using MySQL Workbench which is a FREE software.

These are my requirements and how I represented them in the Db schema

  • user has credentials & an account/profile (email, fName, lName, & so on) – all this is under the USER_DETAILS table

  • user can have role(s) & & several users can have the same role(s) – hence the many-to-many relationship between USER_DETAILS & ROLE tables

  • user can have images – hence the one-to-many relationship between USER_DETAILS & USER_IMAGE tables

  • user can have many badges & several users can have the same badge(s) – hence the many-to-many relationship between USER_DETAILS & BADGE tables

  • user’s track can have many reputation history & a reputation history is only matching one specific user’s track – hence the one-to-many relationship between USER_DETAILS_TRACK & REPUTATION_HISTORY tables

  • user can have many tracks & several users can have the same track(s) – hence the many-to-many relationship between USER_DETAILS & TRACK tables

  • user can have tag(s) per track & several users can have the same tag(s) per track – hence the many-to-many relationship between USER_DETAILS_TRACK & TAG_2 tables

  • track is represented under has TRACK table

  • track can have several artists & an artist can be in several tracks – hence the many-to-many relationship between TRACK & ARTIST tables

  • track can have several releases & an releases can (& usually) have several tracks – hence the many-to-many relationship between TRACK & RELEASE tables

  • release has one release_type & a release_type can be in many releases – hence the one-to-many relationship between RELEASE_TYPE & RELEASE tables (a release type would be an album, an EP, an LP, a single & so on)

  • track can have comments – hence the one-to-many relationship between TRACK & COMMENT tables

  • track can have several tags & an artist can be in several tracks – hence the many-to-many relationship between TRACK & TAG_1 tables

You must have noticed that I have duplicated the TAG table has TAG_1 & TAG_2. Ideally I would only have one but I am afraid that would create a coupling far too strong between USER_DETAILS_TRACK & TRACK tables as these are already linked with a many-to-one relationship.

I plan to keep TAG_1 & TAG_2 synchronized in the middle tier.

INITIAL ERD Diagram for "my fairly complex music-taste-sharing web app"


Latest edit after podiluska’s comments

LATEST ERD Diagram for "my fairly complex music-taste-sharing web app"

  1. Am I on the right path regarding my db design?
  2. What would you modify/improve?

Thanks a LOT

  • 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-13T12:38:37+00:00Added an answer on June 13, 2026 at 12:38 pm

    Apart from the adjustments made in the comments, I think it’s now more or less there.

    You need to either remove Track_ID from Release and replace it with Release_ID in track, or have a TrackRelease table – depending on whether a track can be on more than one release, and vice versa.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying to design database structure for personal finance application. Basically I'll have Transactions
I'm trying to design application that will have UI with database in the backend.
I am trying to developing a projects/employees/hours application and need a database design. I
I'm trying to design a database model and I have a question. I need
I am trying to design Log File Parser for my application. I have thousands
I am trying to design a database to ease with my grading process. I
I'm trying to design a database to record game histories for a game I'm
Im having difficulty trying to design a database structure for the following scenario: My
I'm trying to understand how to design a database that can accommodate an indeterminate
I'm trying to build out a mysql database design for a project. The problem

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.