[development] One-to-one tables considered harmful
David Metzler
metzlerd at metzlerd.com
Wed Jun 6 15:05:12 UTC 2007
>
> The problem we have is where to compromise. We have a very dynamic
> system, where the types can be changed at different points in time,
> and static db schemas. How do we maintain the mapping between the
> two and keep it efficient without major sacrifices in either?
For my own two cents, I think the long term solution lies in making
the schemas dynamic (maybe not core schemas but definitely module
schemas). If we finish implementing a solid data api then adding
fields to a user_profiles table would simply execute the appropriate
alter column statements.
RAILS sort of works this way as well. The API is really in charge of
the schema.
I sort of have the feeling that when we try and store to much in
these generic field extending (like profile fields) that we usually
give up performance and make it really harder to get at the data.
And certainly hard to optimize performance it with indexes.
In my dream drupal, we would have node_<content_type> tables that
would store all the added fields to a content type, and I as a conrib
developer could get at those tables with simple SQL queries.
I've just been bit to many times by scalability problems with the one
table fits all approach.
More information about the development
mailing list