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

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T00:50:47+00:00 2026-05-17T00:50:47+00:00

I know that this isn’t exactly normalised, but bringing all of the localised data

  • 0

I know that this isn’t exactly normalised, but bringing all of the localised data throughout my application into just a few tables will help me out a lot.

I have to be able to link some generic table to a LocalisedContent table which will contain different rows for each of the localised key-value pairs of the generic table joined to it… I guess you could say that it will be a one-to-many relationship.

The problem I’ve found is that I am not sure how to best model this… I can think of two ways and I am not sure which one is best:

My first option is:

AnExampleOfAGenericTable
------------
AnExampleOfAGenericTableID
...other non-localised data...

AnotherGenericTable
------------
AnotherGenericTableID
...other non-localised data...

LocalisedContent
----------------
LocalisedContentID
genericTablePKName
GenericTableID
LanguageID
field
content

In the above it would be possible to get out localised content for a generic table with an SQL query like:

    SELECT AnExampleOfAGenericTableID, field, content 
    FROM AnExampleOfAGenericTable LEFT JOIN LocalisedContent 
    ON AnExampleOfAGenericTable.AnExampleOfAGenericTableID =        
    LocalisedContent.GenericTableID 
    WHERE genericTablePKName = 'AnExampleOfAGenericTableID'

Or:

    SELECT AnotherGenericTableID, field, content 
    FROM AnotherGenericTable LEFT JOIN LocalisedContent 
    ON AnotherGenericTable.AnotherGenericTableID = LocalisedContent.GenericTableID
    WHERE genericTablePKName = 'AnotherGenericTableID'

The second option seems to be, something like:

AnExampleOfAGenericTable
------------
AnExampleOfAGenericTableID
...other non-localised data...
localisedGroupID

AnotherGenericTable
------------
AnotherGenericTableID
...other non-localised data...
localisedGroupID

LocalisedContent
----------------
LocalisedContentID
localisedGroupID
LanguageID
field
content

And then I could use an SQL query like:

 SELECT AnExampleOfAGenericTableID, field, content 
 FROM AnExampleOfAGenericTable LEFT JOIN LocalisedContent 
 ON AnExampleOfAGenericTable.localisedGroupID = LocalisedContent.localisedGroupID;

Or:

 SELECT AnotherGenericTableID, field, content 
 FROM AnotherGenericTable LEFT JOIN LocalisedContent 
 ON AnotherGenericTable.localisedGroupID = LocalisedContent.localisedGroupID;

The second option seems more concise to me, but it does require me to join two FKs which seems a little strange. It also requires a lot of extra ‘localisedGroupID’ columns.

Ultimately both of the examples I’ve given may be wrong and I don’t have the expertise to know the best solution to this. (Before you point out that this isn’t fully normalised, I’ve already said I don’t want hundreds of different localised data tables for each of my tables… I do want some amount of centralisation to the localisation even if it will lose me a little referential integrity.)

Ideas?

  • 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-17T00:50:48+00:00Added an answer on May 17, 2026 at 12:50 am

    Your schema remninds me of the “generalization specialization relational modeling” examples available on the web, with one important difference.

    What you’re calling AnExampleOfAGenericTable and AnotherGenericTable correspond to the specialized tables in the gen-spec pattern, and what you’re calling LocalisedContent corresponds to the generalized table in the gen-spec pattern.

    If I’ve understood you right every entry in the first two tables is going to have a counterpart in the LocalisedContent table, but an entry in the LocalisedContent table is going to have a counterpart in only one of the other two tables. That’s exactly the same pattern as gen-spec, only backwards.

    In gen-spec design, you use the same PK in all the specialized tables that you use in the generalized table. However, the PK in a specialized table is also an FK to the generalized table. And, of course, you only use the autonumber feature in the gen table.

    There’s nothing unnormalized about gen-spec as such.

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

Sidebar

Related Questions

I know that C++11 provides <atomic> , but this isn't implemented by any compiler
i know that there isn't code inside my question, but i think this is
I know that this has already been asked here but the answer (using a
I know that this question is asked a lot, I checked all of the
I know that this feature will be deprecated in C++0x, but for me as
I know that this kind of issue is most discussed. But I would like
I know that this question has been asked several times and I've read all
First off: I know that this isn't reliable for actually checking if I can
I know that this is not a programming related question but what is the
I know that this might be a long stretch, but could someone possibly tell

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.