![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
Evidentemente, ese proyecto es mucho más complejo de lo que parece, no es algo que se deba dejar en manos de novatos o incluso de personas sin muchísima experiencia, son bastantes factores a tener en cuenta.
Ahora bien, si hablas de escalabilidad, el consejo no me parece demasiado acertado, aconsejar MS sql server, es anclarse a windows, para siempre. Con todos los problemas que ello puede acarrear, y no ya sólo en costes de licencias de MS sql server y windows, que serán enormes. Yo encuentro mucho más escalable usar lo que JAI_ME ha indicado, mysql, aunque por supuesto seleccionaría firebird o postgresql, totalmente escalable, que pueden pasar desde pequeños servidores windows hasta los más grandes superordenadores existentes, con linux, evidentemente. El mantenimiento del sistema, para un caso como el descrito, creo que tampoco es demasiado complejo si se hace bien desde el inicio. Pero, por supuesto, todo esto no son más que divagaciones porque JAI_ME no ha dicho nada de lo que realmente le han pedido. Escalabilidad: En telecomunicaciones y en ingeniería informática, la escalabilidad es la propiedad deseable de un sistema, una red o un proceso, que indica su habilidad para extender el margen de operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de manera fluida, o bien para estar preparado para hacerse más grande sin perder calidad en los servicios ofrecidos. Por ejemplo, un sistema de procesamiento y transacción en línea o un sistema administrador de base de datos escalable pueden ser actualizados para poder procesar más transacciones añadiendo por medio de nuevos procesadores, dispositivos y almacenamiento que se pueden implementar fácil y transparentemente sin apagarlos.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal Última edición por Casimiro Noteví fecha: 24-03-2012 a las 22:08:26. |
|
#2
|
||||
|
||||
|
Mi ERP es multiempresa.
En una tabla se definen las empresas y a cada una se le asigna un ID. En casi todas las demás tablas, agrego este ID para identificar a qué empresa pertenece el dato. Por ejemplo Clientes tiene una estructura ID_EMPRESA, ID, NRO_CLIENTE, NOMBRE, ... Si haces un índice en las tablas que tenga en cuenta primero el ID de la escuela y luego el ID de la tabla no deberías tener ningún problema. En el caso anterior, el indice es ID_EMPRESA, ID. Tengo tablas con millones de registros y la búsuqeda indexada no tarda nada (milisegundos) Trabajo con Firebird y te lo recomiendo! Pequeño ejemplo de como yo armaría la base de datos: ESCUELA : ID, NOMBRE, DATOS ... |
|
#3
|
|||
|
|||
|
Gracias a todos por sus comentarios, la verdad me gusta mucho mysql y mucho mas firebird por su ambiente gráfico, en un proyecto configure php con firebird y me funciono perfecto, la cuestión es que no estoy seguro que la empresa donde alojare la pagina brinde el servicio con firebird, pienso comprar el servidor ya que estoy de acuerdo con lo que dice mamcx en cuanto a copias de seguridad, mantenimiento del servidor, etc, etc. eso es un verdadero dolor de cabeza y un gran mundo aveces costoso, soy responsable de esa información y ese trabajo se lo quiero dejar a la empresa con la que contrate.
Lo que agrego nuestro amigo duilioisola me gusto por lo menos ya tengo una referencia que no se cuelga y funciona bien teniendo muchísima información y mas con un motor de base datos gratuito como firebird. Comparto muchísimas opiniones con Casimiro Notevi me gusta mas lo libre que windows sin demeritarlo. Cita:
ESCUELA : ID, NOMBRE, DATOS ... PROFESOR: ID_ESCUELA, ID, NOMBRE, DATOS ... CLASE : ID_ESCUELA, ID, HORARIO, ID_PROFESOR, DATOS ... MATERIA : ID_ESCUELA, ID, NOMBRE, DATOS ... ALUMNO : ID_ESCUELA, ID, NOMBRE, DATOS ... //Clases a las que asiste un alumno ALUMNO_CLASE : ID_ALUMNO, ID_CLASE //Control de asistencia a las clases ALUMNO_ASISTENCIA : ID_ALUMNO, ID_CLASE, FECHA, Se me olvidaba preguntarles si conocen una buena empresa hosting que tenga un servicio excelente, y donde pueda configurar firebird. gracias a todos.
__________________
JaiMelendez Última edición por JAI_ME fecha: 26-03-2012 a las 16:30:17. |
|
#4
|
||||
|
||||
|
La velocidad no cambiaría nada, pero es que ¡¡¡no puedes quitarlo!!! si quieres tener controlado qué pertenece a cada escuela, porque todas van a estar en una misma BD.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
|
#5
|
||||
|
||||
|
Cita:
Con respecto a del servicio "excelente", creo que el único excelente en el PaaS es Google AppEngine. Lo único malo y por lo que se quejan algunos (malos) desarrolladores es que tienes que cambiar tu forma de pensar para poder desarrollar una aplicación para este servicio. Pero apartando cuál PaaS usar, quiero mencionar algo que nadie ha comentado. Si quieres una aplicación escalable, usa memcache lo más que puedas. Aunque contrates el mejor PaaS, sino utilizas memcache tu aplicación nunca será escalable y te saldrá muy pero muy costosa mantenerla. Saludos! |
|
#6
|
||||
|
||||
|
Cita:
Como te escribi solo hay dos escuelas: O pones todo en una tabla y particionas por un(os) campo(s) como los que te pusieron o particionas por base de datos. En el primero, si la BD se crece mucho (mucho es mucho: millones y millones) y no tienes RAM para cargar los indices en memoria y el motor no lo aguanta, se quedaria "colgado". En esta escuela, debes saber poner indices y ser muy juicioso en el manejo de los SQL para cargar solo lo necesario, debes por todos lados injectar los campos que particionan la tabla y hay JOINS a lo loco. Los backups son dificiles: Como sacas solo un colegio? Y los restore peor aun. Pero es facil hacer reportes. Y hacer cambios globales, como agregar un campo. Pero replicar es mas simple ya que es solo un BD. La otra escuela, requiere mayor complejidad de administracion (ej: hacer backups, o sea configurarlos N veces), pero los datos son aislados de forma natural, puedes mover de forma simple los datos de una empresa, puedes meter facilmente varios servidores y escalar facil porque mueves unas empresas al uno y otras al otro, pero hacer reportes es un lio (y con FB no veo como sacar una consulta que agrupe muchas BD) y los cambios en los esquemas hay que repetirlo por N bd, sin un pool de conexiones pierdes velocidad al estar conectando y desconectando a N bd, los planes de ejecucion los pierdes al moverte entre BD, etc.. El codigo es mas simple (no hay que injectar campos ni tanto join) y las consultas salen mas facil y rapido. Gastas mas espacio en disco, y ram. O no. Es difcil adivinarlo. Eso es pa empezar. Cita:
P.D. Quizas sea buena idea que evalues postgres. Su concepto de lo que es una BD encaja muy bien con la escuela de "bd por compañia" y a la vez es viable hacer un query a todas las BD. De hecho, postgres es asi: Una BD = Un cluster de "esquemas". Un esquema en postgres = Una bd en mysql, firebird. Por lo tanto, queda una sola instancia de BD que configurar y administrar, y tienes un poco mas simple el manejo de los esquemas. Ademas, tienes opcion de usar https://postgres.heroku.com/, que es la razon #1 por la que estoy con postgres ahora. Ya depende que economicamente te de resultado.
__________________
El malabarista. Última edición por mamcx fecha: 26-03-2012 a las 18:24:39. |
|
#7
|
|||
|
|||
|
Gracias de nuevo, al parecer lo haré todo en una sola base de datos, pero sigo teniendo la duda, mysql o postgresql.
en cuanto a la relaciones anteriores No se porque se perdería la integridad referencial, si por lo menos la tabla ALUMNO_CLASE tiene el id del alumno y lo puedo relacionar con el ID de la tabla alumno y esta ultima me dice a que escuela pertenece. Lo mismo con la tabla ALUMNO_CLASE saludos a todos.
__________________
JaiMelendez |
|
#8
|
||||
|
||||
|
Tienes razón, esos campos no son necesarios en esas tablas.
Por otro lado, quizá debas considerar el caso en que un profesor de clase en varias escuelas o un alumno tome cursos en varias escuelas. // Saludos |
|
#9
|
||||
|
||||
|
Cita:
http://wiki.postgresql.org/wiki/MySQL http://stackoverflow.com/questions/1...ls-environment http://stackoverflow.com/questions/1...sql-over-mysql En lineas generales? MySql esta optimizado para ser rapido en lecturas a costas de integridad de datos, a menos que se use un motor de almacenamiento diferente. Ya que la seleccion del almacenamiento altera el funcionamiento, hay cosas que funcionan de una manera u otra. Basicamente, mysql muy bueno para hacer paginas web, pero no para datos transaccionales. Postgres es mas orientado a ser robusto a nivel transaccional y le dan mucha prioridad a la estabilidad de datos. Un punto a favor es que postgres es una comunidad unificada - incluso quienes comercialmente trabajan sobre postgres como EnterpriseDB- mientras MySql ahora es una serie de "forks" en especial MySql original que lo mantiene Oracle y MariaDB que es el intento por ser mas opensource. Como notas por las referencias que te doy, estoy mas inclinado a Postgres. Lo estoy usando ahora, y me ha sorprendido: Tiene un esquema de programacion muy flexible y potente. Me parece que es rapido, facil de configurar y flexible a lo loco. La unica cosa que tiene MySql es su facilidad para hacer un esquema de Maestro de escritura-Esclavos de solo lectura que es ideal para escalar sitios web, pero desde la version 9.1 toda la historia de la escalabilidad horizontal de postgres se ha vuelto mucho mejor. En general, si estas acostumbrado a Sql Server y/o Firebird, pienso que postgres es mejor alternativa. Casi todo lo que hago con Sql Sever a nivel de BD (Sql server tiene otras cosas que no tienen los motores opensource) lo hago en postgres. Incluso me pregunto: Sera que podria en postgres hacer esto? Y puff! resulta que si. Un punto muy bueno son sus modulos: http://www.postgresql.org/docs/9.1/static/contrib.html Hay modulos para hacer cosas muy potentes. Dale una mirada.
__________________
El malabarista. |
|
#10
|
|||
|
|||
|
Gracias Roman, en conclusión definitivamente php-postgresql y una sola base de datos ? en caso que ustedes los fueran a desarrollar
__________________
JaiMelendez Última edición por JAI_ME fecha: 28-03-2012 a las 19:22:25. |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Sugerencia | ricardo_yah | OOP | 10 | 06-11-2010 03:17:59 |
| Una sugerencia... | david_uh | Varios | 6 | 06-06-2007 20:10:10 |
| Una sugerencia por favor Sugerencia !! | yepixxx | Firebird e Interbase | 6 | 13-03-2007 19:07:10 |
| Sugerencia | turminator | Varios | 2 | 30-06-2006 19:42:28 |
|