Hola man, si ya manejaste Bases de Datos alguna vez, entonces ya estas programando a dos capas, como haras para agregar la tercera???
Tu cuando programas a 1 capa, todo lo haces en la logica de negocios, desde ahi consultas y simulas una BD con variables locales temporales, dependiendo de tu lenguaje a programar.
Con 2 capas estas separando la logica de negocio de los datos. Es decir desde la pagina web haces tu logica de negocio, tus consultas a bases de datos, etc, etc. Entonces la capa uno es la vista y la logica de negocios y la capa 2 es tu capa de datos (osease tu base de datos)
Para meterle la tercera capa, entonces tendras que dividir tu primera en otras dos, separando la vista de la logica de negocios, asi te quedaran entonces. En tu primera capa tendrias, a la vista, que podria ser un html, jsp,etc. En tu segunda capa tendrias la logica de negocios, es decir de aqui mandas a hacer tus consultas, nunca desde tu vista, es solo cuestion de mapeos. Y tu tercera capa seria tu capa de datos (la BD). Si quieres entenderle mejor a esto, buscale algo asi como el modelo MVC en google, con eso la armas, ahora que con php no tengo ni idea de como implementarlo, ando verde en php. Si sabes javam te recomiendo con jsp's, servlets y tu postgres, o con el framework struts, o con C# tambien hay un framework que se llama MVC (Creo).
jaja se me olvidaron las ventajas.
Te voy a decir lo que a mi experiencia me ha ayudado.
- Es mas facil detectar errores, ya que todo esta supermodulado, yo a veces me perdia entre tanto codigo.
- Separar la vista de la logica de negocios ayuda a mantener a los programadores de los diseñadores, sin que estos se peleen, ya que cada quien tiene su propio pedazo de codigo a trabajar.
- Tu proyecto es muy escalable, ya que con este modelo, tienes todo modulado, entonces ir agregado nuevas funciones o componentes al sistema es mucho mas facil. ya que solo creas otra vista y su logica de negocios, para la mayoria de las veces.
Espero haber ayudado n_n