Question

We are planning to develop a cloud based database driven web application which we would like world to use. Till date at the database side we have used fully normalized way to store the data and use multiple joins to retrieve the data and it is good if local system is concerned. But for web, we have learned that nowadays databases are not fully normalized so that there are least joins and loads faster. I have learned Magento is using flat tables to maintain faster loads and then using caching techniques to maintain the state of the data. Correct me if I am wrong.

We would like to adopt a kind of technique but not clear on balancing between normalization and denormalization.

Hope you guys have an answer, and tips to create fresh database which is faster load.

Please suggest.

Regards Jay

Était-ce utile?

La solution

This sounds like a case of premature optimization to me. Your project is very, very tiny compared to a lot of applications running on a normalized database system. I know ambitions can get the best of you, but worry about global scaling if and when that becomes an issue.

Until then, I'd stick with normalized tables (3rd normal form is my go-to). Any RDBMS worth running can handle joins with ease--that's what it's built for. When you run into performance problems, don't denormalise until you find that to be the issue. Usually a good index or plan hint will help. There are, however, some perfectly good places to denormalise. Be careful, though, as this leads to data duplication, which is prone to error if you don't find every bit of data and keep it in sync.

Licencié sous: CC-BY-SA avec attribution
scroll top