Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    1. CO-1 Technically incorrect. Convenience for an app coder is never a justifiable reason to break Relational rules and standards. The resulting database has lost the power of "relational" and "database". If you are going to design databases that last, it might help to learn the theoretical and practice it until you appreciate the value of it. Dismissing something that you do not understand is, well, very limited mindset.
      singulars
    2. COUnless you have a *measured* bottleneck where you know denormalization is beneficial you should never ever design the system in a denormalized fashion. And even when the bottleneck is there, you should be extremely cautious. Denormalization also tends to put more pressure on the application programmer to maintain it. From the outset, you should go for 3NF/BC simply because it keeps your future as flexible as possible.
      singulars
    3. COWell, I am familiar with rational algebra and didn't mean that denormalization is good and that developer should not tend to use theory designing tables structure. The thing I tried to say is that there's nothing bad adding new property (surrogate key) to the table, provided you can't extract property (-ies) from real life objects that can be used as PK (either composite or not). And in my practice I found that these properties can be easily extracted in "reference-like lookup tables". Please correct me if I'm wrong.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload