6

I am working on a new project for an international website. The task is to get this available in 16 languages.

On the database structure, I was wondering if there is any performance advantage or disadvantage between these two approaches. What would be the preferred choice and why?

Approach #1

One line per translated item

Approach #2

One line per language per item

koljanep
  • 353
  • 2
  • 9
  • 20

1 Answers1

6

Generally, it's better practice to encapsulate the data as you did in your second approach.

This is because...

When a fully normalized database structure is extended to allow it to accommodate new types of data, the pre-existing aspects of the database structure can remain largely or entirely unchanged. As a result, applications interacting with the database are minimally affected.

By following this tenant of normalizing, it's far easier to add, update, or remove rows to a table than it is to alter the table by adding/removing columns. Languages may change over time, but the table ideally should stay the same and not need to be in flux to accommodate changes in the data.

LowlyDBA - John M
  • 10,812
  • 11
  • 39
  • 59