➜ Diseño de la Base de Datos y Relaciones
Diseño de la Base de Datos y Relación entre Entidades | Una base de datos bien diseñada es esencial para cualquier aplicación web: Permite una gestión fácil y estructurada de los contenidos.Mejora el rendimiento.
Una base de datos bien diseñada es esencial para cualquier aplicación web:
- Permite una gestión fácil y estructurada de los contenidos.
- Mejora el rendimiento y la escalabilidad.
- Aporta las bases para aplicar correctamente técnicas de optimización SEO.
El sitio web que construiremos será totalmente administrable y adaptado a distintos tipos de negocios.
Nombre de la Base de Datos
-
Nombre elegido:
empresa_web
Razones:
- Representa una estructura adaptable a distintas empresas o negocios (restaurantes, cafeterías, despachos de abogados, talleres mecánicos, etc.).
- Cumple buenas prácticas: nombre corto, descriptivo, en minúsculas y sin caracteres especiales.
- Facilita la organización en entornos locales (como XAMPP) o futuros servidores.
Ejemplo futuro:
Si el estudiante adapta el sitio para un restaurante, podría usar restaurante_web
.
¿Por qué usamos MySQL?
Motivos principales:
- Compatibilidad completa con Laravel y XAMPP.
- Amplio soporte en la industria y en servicios de hosting.
- Facilidad de uso para bases de datos relacionales.
- Alta disponibilidad y rendimiento excelente en proyectos de tamaño pequeño y mediano.
- Soporte para relaciones y claves foráneas, fundamentales en nuestra estructura.
Notas importantes:
- Laravel utiliza Eloquent ORM para trabajar de forma nativa con MySQL, lo que facilita la creación y manejo de datos.
- Amplia documentación disponible en caso de necesitar ayuda.
Estructura Simplificada de Tablas
🔹 Tabla: users
-
¿Qué guarda?
Usuarios del sistema. -
Campos principales:
id
: Identificador único.name
: Nombre completo.email
: Correo electrónico.password
: Contraseña cifrada.role_id
: Relación con la tablaroles
.timestamps
: Fechas de creación y actualización.
-
Relación: Cada usuario pertenece a un rol.
🔹 Tabla: roles
-
¿Qué guarda?
Tipos de usuario: Admin y Editor. -
Campos principales:
id
: Identificador único.name
: Nombre del rol (admin/editor).description
: Descripción del rol.
-
Relación: Un rol puede estar asignado a varios usuarios.
🔹 Tabla: categories
-
¿Qué guarda?
Categorías de servicios y publicaciones. -
Campos principales:
id
: Identificador único.name
: Nombre de la categoría.slug
: URL amigable (SEO).description
: Breve descripción.meta_title
: Título SEO.meta_description
: Descripción SEO.timestamps
: Fechas de creación y actualización.
-
Relación: Una categoría puede tener muchos servicios o muchos posts.
🔹 Tabla: services
-
¿Qué guarda?
Servicios o productos ofrecidos por la empresa. -
Campos principales:
id
: Identificador único.title
: Nombre del servicio.slug
: URL amigable (SEO).description
: Detalle del servicio.price
: Precio.image_url
: Imagen representativa.category_id
: Categoría relacionada.meta_title
: Título SEO.meta_description
: Descripción SEO.timestamps
: Fechas de creación y actualización.
-
Relación: Un servicio pertenece a una categoría.
🔹 Tabla: posts
-
¿Qué guarda?
Publicaciones del blog de la empresa. -
Campos principales:
id
: Identificador único.title
: Título del post.slug
: URL amigable (SEO).content
: Contenido del artículo.image_url
: Imagen destacada.category_id
: Categoría relacionada.meta_title
: Título SEO.meta_description
: Descripción SEO.timestamps
: Fechas de creación y actualización.
-
Relación: Un post pertenece a una categoría.
🔹 Tabla: subscribers
-
¿Qué guarda?
Correos de personas que desean recibir novedades. -
Campos principales:
id
: Identificador único.email
: Correo del suscriptor.created_at
: Fecha de registro.
🔹 Tabla: contacts
-
¿Qué guarda?
Mensajes enviados desde el formulario de contacto. -
Campos principales:
id
: Identificador único.name
: Nombre de quien envía.email
: Correo de quien envía.message
: Mensaje enviado.created_at
: Fecha de envío.
🔗 Relaciones Entre Tablas (Base de Datos)
🔹 Principales Relaciones
-
users ➔ roles
- Cada usuario pertenece a un rol.
- Ejemplo: Juan Pérez (user) ➔ Rol: Admin.
-
services ➔ categories
- Cada servicio pertenece a una categoría.
- Ejemplo: "Desarrollo Web" ➔ Categoría: Servicios Tecnológicos.
-
posts ➔ categories
- Cada publicación del blog pertenece a una categoría.
- Ejemplo: "Consejos de Marketing" ➔ Categoría: Marketing.
📈 Relaciones Opcionales
-
users ➔ posts (extensible)
-
Un usuario podría ser el autor de un post en el blog (opcional en el curso básico).
-
🛠️ Notas Importantes
- Integridad referencial: Siempre usaremos claves foráneas (
foreign keys
) para garantizar que los datos estén correctamente conectados. - SEO desde la base de datos: Cada servicio y publicación tendrá campos específicos para optimizar el posicionamiento (slug, SEO title, SEO description).
11173 visitas
Capítulo 3 – Mockups e Identidad Visual »
Descarga el código del proyecto
Descarga el código fuente del proyecto adquiriendo el curso completo
Comprar