Autor Tema: base de datos por empresa?  (Leído 3806 veces)

0 Usuarios y 1 Visitante están viendo este tema.

k_arlytos

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +2/-4
    • Ver Perfil
base de datos por empresa?
« en: Agosto 30, 2014, 12:03:40 am »
Buenas noches con todos, tengo una duda tengo en mente crear un sistema multiempresarial
pero la duda que tengo es si crear BASE DE DATOS POR EMPRESA o crear campo a mis tablas que diga empresaID(en cada tabla)
y asi identificar que registro pertenece a que empresa

que me pueden recomendar, lo idea es que sea optimo

muchas gracias
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

YAcosta

  • Moderador Global
  • Exabyte
  • *****
  • Mensajes: 2853
  • Reputación: +160/-38
  • Daddy de Qüentas y QüeryFull
    • Ver Perfil
    • Personal
Re:base de datos por empresa?
« Respuesta #1 en: Agosto 30, 2014, 12:26:48 am »
Ambas formas son optimas si se aplican bien.

He visto que algunos soft contables cuando crean una nueva empresa realmente se crea un archivo de base de datos (naturalmente automatizado para que sea transparente al usuario), y les va bien. El gran beneficio es que ante cualquier "desgracia" solo se fastidia una BD, bastante raro pero puede pasar.

También la otra forma es como tu dices, teniendo en un campo mas un ID que identifique que dicha transacción pertenece a tal o cual empresa, esto yo lo uso cuando se trata de un cliente que tiene varias empresas y en algún momento hay que consolidar, de esta forma resulta mas sencillo armar los querys.

Y la tercera forma seria crear un prefijo a las tablas. Esto lo he visto en ERPs, cuando se crea una nueva empresa se disparan scripts que generan nuevas tablas con el prefijo de la empresa. Ejemplo, Tabla: Ventas, Compras, etc, creas una empresa llamada karlytos y las tablas se llamaran karlytos_Ventas, karlytos_Compras, etc. Si creas otra empresa llamada LDX, las tablas seran LDX_Ventas, LDX_Compras, etc.

Saludos
Me encuentras en YAcosta.com

AxioUK

  • Megabyte
  • ***
  • Mensajes: 108
  • Reputación: +17/-1
  • Modulos GSL
    • Ver Perfil
Re:base de datos por empresa?
« Respuesta #2 en: Agosto 30, 2014, 10:53:23 pm »
Como dice el master Yacosta, ambas son efectivas si son bien aplicadas. En una de mis apps tengo el sistema de una DB por cada empresa, este software lo vendí a una firma con 2 razones sociales y como aplicaba DB Access en ese entonces opté por esa forma. Este mismo soft se convirtió en mi primer proyecto portado a Firebird, y opté por una única DB con una Tabla para las empresas, desde la cual tomo el ID para almacenar los documentos generados, todos en una misma tabla, desde la cual las filtro por el ID según la razón social que la requiera. Ya lleva casi 2 semanas en "marcha blanca" y hasta ahora todo OK, por lo que ya me solicitaron pasar toda la DB Access a Firebird.. (jejeje)
Para mi gusto personal te recomiendo una unica DB (en Firebird por supuesto  ;) ) y una tabla para las empresas. A mí me pareció más practico (y menos código) que estar generando diferentes conexiones segun la DB...

Saludos!

_____________________________
Sé un poco de todo y mucho de nada... ;)

k_arlytos

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +2/-4
    • Ver Perfil
Re:base de datos por empresa?
« Respuesta #3 en: Septiembre 01, 2014, 12:28:45 pm »
muchas gracias por sus respuestas ahora ya tengo claro lo que tengo que hacer..
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

Albertomi

  • Gigabyte
  • ****
  • Mensajes: 281
  • Reputación: +153/-0
    • Ver Perfil
Re:base de datos por empresa?
« Respuesta #4 en: Septiembre 01, 2014, 09:38:07 pm »
Estimado k_arlytos




Al parecer se han olvidado de lo concerniente a la seguridad. Hay que tener en cuenta como vas a manejar los permisos de acceso a la base de datos, ya que vas a necesitar conceder permisos del tipo DDL y DML.


Si decides por crear nuevas base de datos o nuevas tablas los permisos DDL debes de asignarlos a una cuenta de servicio que se encargue de ejecutar tus comandos DDL. Evita asignar permisos de DDL a la cuenta de usuario o la de conexión a la base de datos.




Saludos, desde algún lugar de Lima-Perú
Saludos, desde algún lugar de Lima-Perú