Estoy aprendiendo programación centrada en la web escribiéndome un blog, usando PHP con un back-end de base de datos MySQL. Esto debería reemplazar mi blog actual (basado en Drupal).¿Almacena cuerpos de publicaciones en bases de datos o archivos?
He decidido que una post
debe contener algunos datos: id
, userID
, title
, content
, time-posted
. Eso hace un buen esquema para una tabla de base de datos. Sin embargo, tengo problemas para decidir cómo quiero organizar el almacenamiento de content
.
Yo tampoco podía:
- utilizar un sistema basado en archivos. La tabla de la base de datos
content
sería una URL para un archivo ubicado localmente, que luego leería, formataría y mostraría. - Almacenar todo el contenido de la publicación en
content
, es decir, ponerlo en la base de datos.
Si fui con (1), buscar los contenidos de las publicaciones sería un poco problemático - estaría limitado a la búsqueda de metadatos, o tendría que leer el contenido de cada archivo al buscar (aunque no sé cuánto de un problema que sería - grep -ir "string" .
no es demasiado lento ...). Sin embargo, las imágenes (si las hay) serían referenciadas por una URL, por lo que hacer referencia a content
sería al menos una metodología internamente consistente, y sería fácilmente capaz de reutilizar el contenido, ya que los archivos de texto son ridículamente fáciles de usar, en comparación con un archivo de base de datos SQL.
Sin embargo, yendo con (2), podría usar un longtext
. El content
necesitaría desinfectarse antes de intentar ponerlo en la tupla, y estoy limitado por el tamaño (aunque es poco probable que escriba una publicación de blog de 4 GB;). La búsqueda sería fácil.
No veo (actualmente) qué camino sería (a) más fácil de implementar, (b) más fácil de vivir.
¿Qué camino debo seguir/cómo se hace normalmente? Cualquier otro pros/contra para (1) o (2) sería apreciado.
indización, etc. sería un problema y también si tiene una base de datos puede almacenar los datos en múltiples tablas y relacionarlos con claves externas, etc. – dee