[wp-hackers] Database structure Wordpress
listswphackers at mist.org.uk
Thu Dec 3 19:36:16 UTC 2009
<161617690912030712v5edc0858uc8b6d9bfaef26260 at mail.gmail.com>, Otto
<otto at ottodestruct.com> writes
>It's all well and good to have good database design, but the
>difference is that good design does not equate to "faster" in real
>world applications. The goal of "high performance" is often in direct
>conflict with correct relational database design. Took me a long time
>before I figured that one out.
One table per type in the way that's been described is not good
relational design in any case, it's breaking normalisation rules. If
you were to introduce a table for "car" and a table for "van" and they
ultimately contain the same information columns, that's poor design, and
will lead to you having to do work in the code base which could
otherwise have been done more efficiently through set based SQL.
For example, in that case, you'd also need another table that holds the
names of all the sub-tables, and to fetch everything you'd first have to
collect all the sub-table names with one query, then loop through N more
queries for each sub-table, or pass through horrific unions in your
database calls. It's just messy.
The "multiple tables for the same thing" sort of design thinking tends
to be favoured by programmer types more than database types.
Fair enough, you can abstract if you like, but it should be conforming
to rules, and doing that does tend to lead to reasonably complex
database designs which might not be the fastest.
More information about the wp-hackers