PHP, Python, Ruby application with multiple RDBMS -


When I see all these SQL-based database abstraction layers and all those ORMs from there, I am beginning to feel, though I am far away from old age, I consider it necessary for them, but their use spreads to those places which are not usually those.

I believe that the use of database architecture layers for SQL generation is not the right way to write database applications, run on many database engines, especially when you throw in expensive databases like Oracle and more Or is less global, it does not apply to only a few languages.

Just a simple example by using query paging and insertion: FIRST_ROWS and append indication (where appropriate) when Oracle is used. By visiting advanced examples, I can tell about stored procedures / packages in the database where this is understandable. And they are different for each RDBMS.

By using a limited set of commonly available features for many RDBMS, it does not take advantage of the possibilities to provide those expensive and advanced database engines.

So the question is coming back to the heart: How can you develop PHP, Python, Ruby applications, which should run on multiple database engines?

I am particularly interested in how you use separate written questions specifically for running on an RDBMS. Say you got a statement running on 3 RDBMS: Oracle, DB2 and SQL Server, and for each of these you write a different SQL statement to use all features that offer RDBMS. how you do it?

Give it aside, what are you thinking of going on this path? Is it worth your experience? Why? why not?

You can not eat a cake and you can get it, choose from the following options.

  • Whenever you can and in rare cases when you need a hand-created query (for example, the reasons for performance), paste the least common separator and do not store it In this case deployment of applications on a separate RDBMS should be trivial in the case of processes or any proprietary extensions you provide for the database.
  • Use the full power of your expensive RDBMS, but note that your app will not be easily portable, if you need to, you will have to make a lot of effort on porting and maintenance. Definitely a decent layered design will help in this effort by explaining all the differences in a module or class.

In other words, you should consider how many applications will be applied to potentially RDBMSes and make an informed choice.


Comments

Popular posts from this blog

MySql variables and php -

url rewriting - How to implement the returnurl like SO in PHP? -

Which Python client library should I use for CouchdB? -