3

I have been programming for many years now, primarily in PHP and the like and would consider myself an intermediate programmer. Some of my online projects have now gone global and very widely used, i am now in deep thought about scalability etc.

All of my systems so far are written in PHP, no known database structure such as MySQL etc. Instead our databases use an 'operating system style' method of storing information, files and folders if you will. We also do not use any outside/third-party software or CMS, so far this has work out extremely well. Most people, when they hear about the way we do things, criticize and say that is an idiotic idea but normally after seeing our systems in more dept are converted to our way of doing things.

Is it really that bad to not use a standard databasing systems and only using the one (slightly heavier than others) language of PHP?

How well on the face of it will this kind of setup scale?

N.B. Our systems include things such as account and user management, documentation development and task/project managing.

2
  • Do you have any source code to share? Your concept is intriguing
    – user29170
    Commented Jul 1, 2011 at 16:14
  • @KChikuse i have considered releasing our CMS and Database structure to the public in an open-source format. But for now would rather keep it close to my chest. If you require certain aspects of the code to better answer the question just let me know.
    – hozza
    Commented Jul 1, 2011 at 16:17

1 Answer 1

4

There is nothing wrong with using the filesystem instead of a database if you're just serving what are essentially static pages. There are many CMS and wiki engines written this way (MoinMoin, DokuWiki). The benefit of such systems are they are easier to maintain, as you can just edit the files on the filesystem. For small sites with few visitors, these systems work well. However, if you are building a large site with lots of content and high traffic (think Wikipedia), you will need a database backend in order to scale gracefully. A database provides certain things that a filesystem cannot. In particular ...

  • Caching of frequently requested data
  • Locking to prevent race conditions from concurrent writes
  • Horizontal scaling. The database server can run on a different computer from your webserver.
  • Indexing of search results
1
  • +1 if i could. On our main system we offer basically static content (training) on others it will be creating action plans and task management. - We rarely need to cache (due to our filesystem method) atm however our system has a cache method. - It also has locking. - and has indexing. But not Horizontal scaling. If these are the only reasons a real DB is better for scaling I feel confident that it can work.
    – hozza
    Commented Jul 1, 2011 at 16:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.