Hola que tal, estoy trabajando en un proyecto asp.net y me surge la duda de como encarar el aspecto de membresia, dominio y acceso a datos. A modo general se puede decir que es un sistema de gestion que para utilizarlo se debera abonar un monto mensual. Estara alojado en un dominio al que vamos a llamar www.sistema.com de modo figurado y cada usuario debe iniciar sesion para poder conectarse y trabajar. El sistema ya existe como aplicacion, se encaro este proyecto por demanda de los actuales clientes de trabajar en un sistema online.
Ahora viene el aspecto en el cual debo tomar una decision. Primera consulta:
¿Es aconsejable crear una base de datos para cada cliente que contrata el sistema o por lo contrario crear una sola base de datos para todos los clientes?
El sistema y la base son identicos para cada cliente que lo contrate, nunca voy a tener la necesidad de realizar una excepcion para un cliente en particular sea de estructura o de funcionamiento. Calculo una demanda de aprox. entre 100 y 300 clientes. Encuentro varios aspectos positivos y negativos en cada enfoque. Como ser: si utilizo una base de datos por cliente, tengo que asignar constantemente la cadena de conxion desde el inicio de sesion para la capa datos y en el web.config. Cuando surga una modificacion, a nivel estructura por ejemplo, voy a tener que hacer ese cambio en todas las bases de datos una por una. Por lo contrario si utilizo una sola base evito caer en esas tareas, pero a su vez complica todo el desarrollo ya que por cada query voy a tener al menos una clausula where mas. Tambien es muy usual que los clientes llamen porque operaron mal y necesitan restaurar la base completa desde el ultimo backup, en ese caso tambien estoy complicado si elijo utilizar una sola base para todos los clientes.
Espero leer sus opiniones y fundamentos, saludos...