drupal 8 – ¿Almacenar datos como entidad o nodo?

Pregunta:

Estoy trabajando en un módulo en el que necesito guardar miles o supongo que millones de datos (datos de productos de varios sitios de comercio electrónico). Entonces, no estoy seguro de guardar esos datos en una tabla personalizada mediante el uso de una entidad personalizada o ¿debería guardar esos datos en los nodos?

En cuanto a la búsqueda, un usuario puede usar elastic o search_api_solr y usar vistas para mostrar los datos, así que ¿es mejor usar filas o nodos personalizados para guardar esa cantidad de datos?

Respuesta:

De hecho, no estoy de acuerdo con el comentario de @Kevin, usar o no usar nodos puede marcar una gran diferencia en el rendimiento, por múltiples razones.

Sí, el nodo es una entidad de contenido bastante estándar, pero …

  • Es revisable
  • Es traducible
  • Tiene un montón de campos base estándar como promover, pegajosos que probablemente no sean relevantes para su caso de uso.
  • Cualquier dato que realmente sea relevante debe almacenarse en campos configurables, lo que da como resultado tablas adicionales.

Entonces, si necesita 20 campos adicionales para almacenar cosas, terminará con 4 tablas base y 40 tablas adicionales, es decir, 44 tablas en total.

Si no necesita revisiones y traducciones y asumiendo que solo tiene campos de valor único, puede hacerlo con una sola tabla en su lugar con un tipo de entidad personalizado y campos base. Si necesita revisiones, entonces es 2. Y cada campo de valor múltiple requiere 2 tablas adicionales, pero por lo general no hay tantas.

Con millones de registros, definitivamente vale la pena pensar si vale la pena crear un tipo de entidad personalizado y, en ese caso, parece que la respuesta es probablemente sí.

Vale la pena señalar que todavía hay una cantidad decente de módulos (incluso en el núcleo), que actualmente solo funcionan con nodos, por ejemplo, book o diff. Así que asegúrese de no necesitar nada de eso o esté preparado para volver a implementar esa funcionalidad.

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım