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 494k
  • Answers 494k
  • 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 Here is a very cool VS2010 extension for Javascript and… May 16, 2026 at 11:01 am
  • Editorial Team
    Editorial Team added an answer this is a requested issue: http://code.google.com/p/fullcalendar/issues/detail?id=364 hopefully will get to… May 16, 2026 at 11:01 am
  • Editorial Team
    Editorial Team added an answer You are passing in the vector [4 1] as the… May 16, 2026 at 11:01 am

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

That's pretty much it. I'm using Nokogiri to scrape a web page what has
link Im having trouble converting the html entites into html characters, (&# 8217;) i
I have a French site that I want to parse, but am running into
Seemingly simple, but I cannot find anything relevant on the web. What is the
Does anyone know how can I replace this 2 symbol below from the string
this is what i have right now Drawing an RSS feed into the php,
I'm trying to decode HTML entries from here NYTimes.com and I cannot figure out
I have just tried to save a simple *.rtf file with some websites and
I want to count how many characters a certain string has in PHP, but
I ran into a problem. Wrote the following code snippet: teksti = teksti.Trim() teksti

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.