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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T10:13:34+00:00 2026-05-16T10:13:34+00:00

I’m designing an app with a rather complex table design using the Postgres database,

  • 0

I’m designing an app with a rather complex table design using the Postgres database, and am stuck on one point that I was hoping someone could offer advice about.

I have several tables, each of which has a feature id (or fid). Different types of entities have different attribute schemas, so I have to create a different table for each type. However, I want to make sure that the fids are unique across all entity types.

If I have three entity types, Entity1/2/3, represented by the following 3 tables:

Entity1             Entity2             Entity3
    fid                 fid                 fid
    attribute1          attribute2          attribute3

How do I ensure that there are no duplicate fids anywhere in the system?

Thanks!

  • 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-16T10:13:35+00:00Added an answer on May 16, 2026 at 10:13 am

    It sounds like Watsuimoto and MkV are thinking something similar – have a base table hold FIDs and some specific entity tables inherit from that. Watsuimoto mentioned it wasn’t working… if you can get it to work, then I agree with you both that it’s the right solution. And maybe simulating it with FKs on the integer IDs isn’t tight enough to help Watusimoto’s customers from assigning two Entities to the same EntityBase.

    A potential fix for that would be to have a compound key with the entity’s type to help identify it. One example:

    EntityTypes     EntityBase     Entity1      Entity2
    -------------   ------------   ---------    ---------
    TypeName (PK)   EntityID       ID           ID
                    EntityType     EntityType   EntityType
                    CommonAtts     Attribute1   Attribute2
                    FID
    
    Constraints:
    -----------------------------------------------------------------
    EntityBase:
            PK... lots of options.  Probably PK(EntityID, EntityType)
            UNIQUE(FID)
            FK(EntityType) on EntityTypes(TypeName)
    Entity1   :
            PK(ID)  (or PK(ID, EntityID))
            EntityType NOT NULL
            CHECK(EntityType = "Entity1")  (e.g., it is constant)
            FK(EntityType) on EntityTypes(TypeName)
            FK(ID, EntityType) on EntityBase (ID, EntityType)
    Entity2   :  <Ditto>
    

    You’ve got a lot of flexibility here. You could set up per-type FIDs. You could make EntityIDs unique per type or unique across all Entities. You could make EntityBase have an ID separate from EntityID. You might even be able to make EntityType some kind of computed column, or default it, so you don’t have to write a value to it.

    If that’s not your cup of tea because of the EntityType overhead, then I reluctantly offer this:

    Entity1      Entity2           Features
    ---------    ---------   ...   ----------
    ID (PK)      ID (PK)           FID (PK, arbitrary)
    Attribute1   Attribute2        Entity1ID (FK)
                                   Entity2ID (FK)
                                   Entity3ID (FK)
    
    Constraints:
    -----------------------------------------------------------------
    Features  :
            One and only one EntityID is NOT NULL
    

    People who like to think of tables as “entity records” usually don’t like this approach. It’s unwieldy for more than a half dozen entities. But it is correct, and does allow you to keep your single-integer row IDs if you want.

    When it comes to issues like this, I go to Ken Downs blog and look around. He’s got some pretty good thoughts on relational design. That would be my first suggestion if I could find the article he posted on this topic. This article is the closest I could find.

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

Sidebar

Ask A Question

Stats

  • Questions 499k
  • Answers 500k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer This is not pretty but it works: rm -R $(ls… May 16, 2026 at 12:45 pm
  • Editorial Team
    Editorial Team added an answer Yes. Override the base1 and base2 methods in Derived to… May 16, 2026 at 12:45 pm
  • Editorial Team
    Editorial Team added an answer No, you can't. Unfortunately, UIEvent doesn't expose any public way… May 16, 2026 at 12:45 pm

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Related Questions

No related questions found

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.