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

  • Home
  • SEARCH
  • 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 695789
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 14, 20262026-05-14T02:59:44+00:00 2026-05-14T02:59:44+00:00

For instance, let’s say I have a User model. Users have things like logins,

  • 0

For instance, let’s say I have a User model. Users have things like logins, passwords, e-mail addresses, avatars, etc. But there are two types of Users that will be using this site, let’s say Parents and Businesses. I need to store some different information for the Parents (e.g. childrens’ names, domestic partner, salaries, etc.) than for the Businesses (e.g. industry, number of employees, etc.), but also some of it is the same, like logins and passwords.

How do I correctly structure this in a SQL-based database? Thanks!

–UPDATE–

After digging a little bit more, I’m thinking that a polymorphic association might actually make more sense. But I don’t know a lot about them, is there a reason why I wouldn’t want to use them, or that STI is better? It seems like they’re exactly the same except that the fields specific to Parents or Businesses are stored in separate tables, which I think is what I would want. Isn’t it?

  • 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-05-14T02:59:45+00:00Added an answer on May 14, 2026 at 2:59 am

    In an object-oriented environment this would be modeled through inheritance. There are several ways to map inheritance into database tables. The most simple is Single Table Inheritance. If you have an object oriented environment consuming the database this is worth looking into.

    Update: STI vs. other alternatives

    If the number of fields that differ is small, I would go for STI as this is simple to implement and doesn’t add the need for extra joins. The two other main alternatives are

    • Table per Class
    • Table per Concrete Class

    Table per Class

    If there are a lot of fields that are different between the types it is preferrable. The downside is that nearly all queries will require join operations betwen the base class table and one or more sub class tables.

    Table per Concrete Class

    To remedy the join problem of Table per Class a Table per Concrete Class is another way. However it requires common fields belonging to an abstract base class to be present in several tables. This violates the DRY principle and requires union queries to get the common properties from several concrete types.

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

Sidebar

Related Questions

Let's say I have a controller template with a before function like so... public
Many Windows apps (like Skype or MSN for instance) don't let you start multiple
Let's say we have a class: public class MyClass { @Autowired private AnotherBean anotherBean;
Let's say I have a page view called PagePreview.aspx . on that page I've
Let's say you have some time-consuming work to do when a module/class is first
Is it good practice to let abstract classes define instance variables? public abstract class
For instance, my query is like the following using SQL Server 2005: SELECT *
An instance of class A instantiates a couple of other objects, say for example
For instance, I have a SqlDataSource that loads a list of items. On my
Let's say that my application state is extracted into an object (so that all

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.