it-swarm-es.com

Buenas prácticas trabajando con bases de datos

Estoy aprendiendo Drupal y quiero desarrollar un sitio web donde lo principal sea su base de datos.

Ya tengo el Modelo Extendido de Entidad-Relación de la base de datos (algo complejo).

¿Cuál es la dirección correcta a tomar al crear una base de datos para ser utilizada por Drupal, créala manualmente y haz las consultas en Drupal usando PHP, como si fuera un PHP + ¿Sitio MySQL desde cero? ¿Drupal proporciona una manera más fácil de hacer esto?

Editar:
No soy un Drupal desarrollador experimentado. Lo que quiero saber es:

  • Cuando se trabaja con bases de datos, ¿hay alguna mejor manera de hacer esto que consultar la base de datos usando la sintaxis SQL, como si estuviera desarrollando una sola página PHP + MySQL?

Solo quiero saber qué Drupal los desarrolladores generalmente hacen cuando quieren crear una base de datos, insertar datos, modificar datos o hacer algunas consultas y mostrar los datos a los usuarios.

5
Oscar Mederos

Es probable que su modelo entidad-relación se corresponda con lo que llamamos 'Tipos de contenido' en Drupal.

Los tipos de contenido se definen mediante el módulo Content Construction Kit, comúnmente conocido como CCK.

Con CCK, apunte y haga clic para definir qué campos desea que tenga el tipo de contenido: campos de texto, números, enlaces, referencias a otros tipos de contenido, referencias a usuarios en su sitio Drupal .

Con los tipos de contenido definidos, puede averiguar qué tipo de listas para ese contenido desea: tabular, estilo blog, etc., y usar el módulo Vistas para crear esa lista. Views es un generador de consultas de apuntar y hacer clic, completo con clasificación, filtrado, control de acceso, argumentos de URL dinámicos y relaciones (piense en uniones) con otros tipos de contenido.

Por lo general, así es como se hacen las 'bases de datos' en Drupal - pero no tienes que hacer nada con la base de datos, realmente.

Si tiene un caso de uso realmente específico que no se puede resolver con alguna combinación de los 7000 o más módulos contribuidos Drupal módulos, entonces podría ser el momento de obtener una copia de 'Pro = Drupal Development 'y aprenda el desarrollo de módulos para integrar su módulo personalizado en el resto de Drupal para satisfacer sus necesidades exactas.

10
Darren Petersen

Mi primera reacción es que esta es posiblemente una pregunta demasiado básica, pero pensándolo bien, vale la pena responder porque es tan fundamental para la mentalidad de trabajar con Drupal que tiende a utilizar el excelente trabajo de otros disponibles a través de módulos para la mayoría de las cosas, y solo tienen que escribir un poco de PHP/SQL.

Por lo tanto, a menos que esté creando módulos para Drupal, generalmente no necesita saber nada sobre la base de datos subyacente o la forma en que funciona.

Con Drupal estará trabajando Tipos de contenido, Nodos y los módulos Vistas y CCK para crear la mayor parte de lo que necesita de un sitio. Estos módulos son bloques de construcción en lugar de complementos completos que realizan un solo como uno puede haber visto en sistemas menos bien diseñados No cometa el error de pensar que Drupal es un CMS, es más como un marco estándar sin demasiada codificación.

Puede obtener de 0 a 95% de funcionalidad muy rápidamente para la mayoría de las cosas simplemente usando el núcleo y algunos módulos bien elegidos.

4
Richard Harrison

DESCARGO DE RESPONSABILIDAD: No soy un Drupal Desarrollador

Siempre que use MySQL, debe planificar la cantidad de almacenamiento que espera que use su sitio.

Por experiencia personal como DBA de MySQL, he limpiado Drupal instalaciones y consultas optimizadas con algunos principios básicos en mente.

Lo principal que hago para cualquier cliente Drupal es CONVERTIR TODOS LOS DATOS MySQL A INNODB . Esto eliminará el bloqueo de la tabla, especialmente en un sitio de alto tráfico . Debería tener todos los medios para usar la opción innodb_file_per_table.

Debe asegurarse de poder almacenar en caché todos sus datos de InnoDB. Por lo tanto, tenga suficiente memoria para acomodar eso. No olvides ajustar sort_buffer_size, join_buffer_size, read_buffer_size, read_rnd_buffer_size y multiplicar la suma de ellos por max_connections. Asegúrese de que la memoria total consumida por MySQL (innodb_buffer_pool_size + key_buffer_size + (sort_buffer_size + join_buffer_size + read_buffer_size + read_rnd_buffer_size) X max_connections) no exceda el 90% de la RAM instalada.

Siempre es una buena práctica revisar la capa de base de datos. Una vez que implemente estas sugerencias, se debe considerar el mantenimiento de la capa de base de datos cuando tenga un crecimiento significativo en datos o conexiones. De lo contrario, debería ser una ocurrencia rara.

2
RolandoMySQLDBA

Si eres un usuario general, todo lo que harías es instalar el sitio a través de install.php, y lo único que necesitas saber sobre la base de datos es el nombre, el usuario y la contraseña, Drupal cuidate del resto.

Si necesitara hacer algún tipo de consulta como usuario, usaría el módulo Vistas , nuevamente sin necesidad de saber nada sobre la base de datos.

Si usted era un desarrollador que escribía código personalizado o un módulo contrib y necesitaba almacenar información en la base de datos, es posible que deba escribir algunas consultas y otras pueden ser atendidas por algunas Drupal funciones .

  • Configurando su base de datos en primer lugar, usaría hook_schema () , donde simplemente necesita devolver su esquema en el formato requerido.

  • Un enfoque de mejores prácticas para escribir/actualizar registros en una sola tabla es aprovechar drupal_write_record () .

Se pueden encontrar muchas más lecturas en: http://api.drupal.org/api/drupal/includes--database--database.inc/group/database/7

También tenga en cuenta que la documentación es específica de la versión.

Espero que esto responda un poco a tu pregunta.

1
Decipher