Pregunta

¿Cómo se hacen las bases de datos reutilizables que se pueden utilizar para muchos productos?

Por ejemplo, si tenemos una base de datos diseñada para una escuela ... ¿Puede ser modificado fácilmente para ser dado a una universidad?

¿Cuál es la manera de crear una base de datos que puede ser utilizado como un producto para dar solución a muchos clientes con codificación de una sola vez?

Gracias

¿Fue útil?

Solución

Una aplicación de este tipo requeriría un modelo de datos bastante complejo para tener en cuenta los requisitos. Diferentes tipos de escuelas tendrían diferentes requisitos. Una universidad puede permitir añadir o baja en los cursos, pero una escuela primaria normalmente no lo hace. Una universidad tiene que programar cursos en las habitaciones, mientras que una escuela primaria tiene que poner a los estudiantes en grados y grados divididas en clases basadas en el espacio y profesores disponibles.

Su diseño debe tener en cuenta todos los requisitos que se espera para resolver y luego aplicar esos. El más genérico que hacen el programa más difícil es para satisfacer a sus clientes. La pregunta dice "escribir el código una vez". Si desea escribir un único programa que resuelve las necesidades de cada escuela, tendrá cientos de funciones; en algunos casos algunas escuelas requerirán una función opuesta a otra escuela; por ejemplo, algunas escuelas tendrán que cumplir un maestro por cada tema o clase mientras otra escuela podría requerir múltiples maestros. Los más requisitos que esperan reunirse, más compleja la aplicación se hace.

En la industria de grandes aplicaciones tienden a ser escrita de manera que puedan ser extendidos; se proporciona un conjunto básico de funcionalidad pero la aplicación está destinado a ser cambiado y personalizada para un cliente particular. Esto hace que sea más fácil de desarrollar, ya que no es necesario anticipar todas las necesidades; de hecho, usted no tendrá que anticipar muchas necesidades hasta que tenga un cliente con esas necesidades. Pero con "personalización" no está escribiendo código de una sola vez.

El paso más importante es llegar a un modelo de datos que es lo suficientemente flexible para extender más adelante, pero no es tan flexible que es imposible desarrollar para. La parte más difícil es por lo general recibiendo la cardinalidad de las relaciones correctas. Por ejemplo, se podría decir una clase tiene un maestro. Luego, cuando resulta que una clase necesita dos profesores, usted tiene que volver a escribir mucho código y fijar una gran cantidad de datos. Este tipo de cambios son molestos y consume mucho tiempo. Sin embargo, al final siempre se puede corregir errores dado el tiempo suficiente programador.

Otros consejos

Por lo general, cuando la gente hace esto, tienen varios clientes en la misma industria. Así que si usted es un desarrollador web de comercio electrónico, a continuación, va a correr a través de los mismos productos, orden, detalles de la orden tipo de escenario mesa una y otra vez. Cuando esto sucede, es muy fácil de construir una base de datos inicial.

No hay sencilla bala de plata para esto. Sólo tiene que mantener su base de datos de diseño general suficiente, pero tratar de evitar el exceso de generalización que por lo general conduce a pesadillas de mantenimiento y otras trampas desagradables.

Con la experiencia, usted comenzará a apreciar un perfecto equilibrio entre generalizada y especializada. Esa es la clave para el diseño de código / base de datos comprensible y reutilizable.

La respuesta es encontrar un abstracción .

El primer paso, hablar con una variedad muy amplia de los clientes potenciales y averiguar sus necesidades, lo que están utilizando actualmente y lo que desean que su producto actual (s) podría hacer. Pasar 10 veces más tiempo en esto como usted piensa que necesita en este momento. Extraer un potencial de interfaces gráficas de usuario en el papel y tienen las personas que entrevista miran los dibujos y hacer sugerencias. Si es posible, contratar a algunas personas en la industria como analistas de negocios para ayudar con este paso. Preguntar acerca de los requisitos legales. Algunas industrias tienen una gran cantidad de problemas complicance legales y otros no lo hacen. Todo lo relacionado de alguna manera con el mundo de la medicina y se necesita investigar y entender plenamente los requisitos de HIPPA, por ejemplo.

Diseñar la estructura de base de datos y una interfaz gráfica de usuario a continuación, obtener algunos usuarios reales para jugar con él. Refactor basado en lo que dicen (que es increíble la cantidad de cosas que los usuarios dejan en la recogida de requisitos que no piensan hasta que se enfrentan a una interfaz gráfica de usuario real).

Piense en lo que tiene que común a través de todos los clientes potenciales y donde es posible que necesite personalización - sus entrevistas deben guiarlo aquí. Decidir cómo manejar la personalización. O incluso si usted lo permite. Esto puede depender en gran medida de la industria y cómo sus prácticas estándar son.

Si se trata de software de la caja, a menudo el diseño incluye una tabla con campos personalizables que se pueden añadir a los formularios e informes por parte del usuario.

En una solución basada en la web, a menudo cada usuario que quiera personalización puede tener su propia base de datos donde se almacena la información personalizada (y una base de datos central standrad por las cosas no personalizables) y los programadores hacer los cambios según las solicitudes de los clientes. Si se toma esta ruta, la segunda vez que se haga una personalización simliar para un segundo cliente, considere si es necesario refactorizar a hacer de esto una nueva característica del software disponible para todos. No hay necesidad de escribir informes de asistencia 17 personalizados que varían solamente por uno o dos campos cuando la lata cliente por menos dinero tiene un informe estándar.

En el modelo de web, también puede crear un montón de módulos y tienen los clientes elegir qué a añadir a su solución personalizada. Que pagarían en función del número y la complejidad de los módulos que elijan. Por lo que el cliente quiere que sólo tres de los informes estándar pagaría menos que el cliente que quiere que todos 27. Cuando se sugiere una nueva personalización, el cliente paga por el desarrollo si no parece aplicarse a otros immdeiately la sugerencia, pero el módulo se hace para que otros puedan comprar también. Si otros lo compran, el cliente original que pidió el cambio podría obtener una parte del dinero hasta que se pague sus costes de desarrollo. También podrían requerir que algo permanezca como un módulo personalizado y pagar un precio mucho más alto para este trabajo. Tenemos algunos clientes que ni siquiera quieren que sus datos en los mismos servidores en el mismo lugar que otros clientes. Ni que decir tiene, que cobran una prima enorme para hacer algo así.

La personalización es caro y puede conducir a muchos más programadores necesarios. Considere muy fuertemente antes de ir la ruta personalización. En realidad, puede ser la cosa que vende su solución de software, pero no escala bien. No es malo cuando se tiene diez cutomers pero cuando se tiene un par de cientos que puede salir de control muy rápidamente. Es mucho más difícil dar marcha atrás de adaptación una vez se lo ofrecen, a añadir una posterior personalización de una suite estándar. A menudo, la necesidad de una personalización es más en la organización de la información empresarial. Si se puede crear una interfaz de informes donde la gente puede escoger y elegir qué información desean y guardar sus propios informes personalizados, es posible manejar la mayoría de las necesidades de personalización de su sector sin personalización a gran escala es necesario.

el mejor consejo que puedo dar es la construcción al denominador común más bajo ....

Así que .... Código como un proyecto orientado a los servicios de educación: -)

El tiempo de pensar en el tipo de datos que desea almacenar, abstracta con el fin de que sea extensible y, a continuación, construir su base de datos en consecuencia. No sé si usted puede conseguir la reutilización perfecta la forma en que podría partir del código, pero se puede construir una estructura de base de datos (donde todavía se tiene que modificar los componentes individuales) que es reutilizable si se planifica con antelación.

Depende de sus necesidades. Por ejemplo, muchas muchas bases de datos de negocio basado en productos utilizan un formato que incluye:

  • una tabla de clientes
  • tabla
  • una órdenes
  • una tabla de productos, etc.

En su situación que pueda tener

  • una mesa de clase
  • tabla
  • a los estudiantes
  • una tabla de calificaciones, etc.

Este formato de tabla general podría ser reutilizado en muchas aplicaciones.

Es todo en el diseño. En muchos (si no la mayoría de los casos), bases de datos necesitan un cierto nivel de personalización para cada institución; pero las bases de datos generalizados pueden proporcionar un nivel básico de funcionalidad. SI es posible diseñar algo que es lo suficientemente general para servir a muchas de las necesidades básicas; pero el problema es que esa generalidad del diseño tiende a conducir a alta complejidad. Por ejemplo, se puede diseñar su base de datos para ser impulsado por los datos de un gran conjunto de necesidades de los usuarios potenciales; pero por lo general, sólo es mejor para adaptar el esquema a las necesidades individuales de la institución.

Hay ventajas y desventajas importantes que intervienen en el diseño de una situación reutilización; por lo general implican tiempo y la complejidad; es decir, es más fácil diseñar algo que no es reutilizable; y por lo general, la cantidad adicional de tiempo invovled en hacer el diseño general y el uso no vale la pena el esfuerzo.

Encontrar el equilibrio adecuado de generalidad y especificidad en el diseño de su base de datos para que la aplicación se construye alrededor de los que resuelve bastantes problemas en sus mercados objetivo de que todos ellos se compran en él.

¿Cada cliente utilizar toda la funcionalidad o está tratando de construir una una talla única para todos los productos? Siempre he encontrado que el tiempo adicional gastado planificación y modificación de una base de datos para una aplicación en particular vale la pena en el futuro. Es mucho más fácil trabajar con una estructura de base de datos de una concisa en la que han intentado dar cuenta de todas las posibilidades.

Si tengo una base de datos existente que es similar o una plantilla que suelen utilizar una herramienta de modelado de bases de datos como esta para modificarlo y luego utilizar la funcionalidad de generación de SQL (bajo carga / guardar) para crear la base de datos real.

Otro truco que tome hace poco que me ha ahorrado mucho tiempo es salvar el SQL que se utiliza para generar la base de datos como una secuencia de comandos. Si quiero establecer una nueva base de datos que realice las modificaciones al código fuente, y luego cargar la página. Por ejemplo, si quería generar una nueva tabla de clientes me carga http: // localhost / carga php? = generar cliente .

Espero que ayude!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top