2012-09-10 19 views
8

Quiero agregar una función de blog muy simple en uno de mis sitios LAMP existentes. Estaría vinculado al perfil existente de un usuario, y podría simplemente ingresar un título y un cuerpo para cada publicación en su blog, y la fecha se establecería automáticamente en el momento del envío. Se les permitiría editar y eliminar cualquier publicación de blog y título en cualquier momento. El blog se mostraría de más reciente a más antiguo, tal vez 20 publicaciones en una página, con la paginación adecuada por encima. Otros usuarios podrían dejar comentarios en cada publicación, que el propietario del blog podría eliminar, pero no antes de moderar. Eso es básicamente eso. Como dije, muy simple.¿Cómo estructurar las tablas de un blog muy simple en MySQL?

¿Cómo debo estructurar las tablas de MySQL para esto?

Supongo que ya que habrá publicaciones de blog y comentarios, necesitaría una tabla separada para cada uno, ¿es correcto? Pero, entonces, ¿qué columnas necesitaría en cada tabla, qué estructuras de datos debería usar y cómo debería unir las dos tablas (por ejemplo, cualquier clave externa)?

no pude encontrar ningún tutoriales para algo como esto, y lo que estoy buscando que hacer es realmente ofrecer mis usuarios de la versión más simple de un blog sea posible. Sin etiquetas, sin moderación, sin imágenes, sin formato de fantasía, etc. Simplemente un simple blog de texto puro de tipo diario con comentarios de otros usuarios.

+0

Parece que la tarea Di lo has probado y aplicado hasta ahora? – djadmin

+3

@djadmin: mira mi historial en Stack Overflow. Ciertamente no soy estudiante. No he intentado implementar nada todavía porque esto es para un sitio de producción. No hago "prueba y error" en los sitios en vivo, primero averiguo cuál es la mejor manera de implementar algo y luego lo implemento. Eso es lo que estoy tratando de descubrir. – ProgrammerGirl

+0

Mire cómo lo hace cualquier motor de blogs existente. Hay muchos ejemplos para mirar. – ceejayoz

Respuesta

19

yo diría que necesita las siguientes tablas

Posts 
    PostID (identity) 
    PostTitle (varchar) 
    PostDate (datetime) 
    Deleted (int) 
    OwnerID (int FK to Users) 

PostDetails 
    PostDetailID (identity) 
    PostID (FK to Posts) 
    Sequence (int) -> for long posts you order by this 
    PostText (text) 

Comments 
    CommentID (identity) 
    Comment (text) 
    CommenterID (int FK to Users) 
    CommentDate (datetime) 
    Deleted (int) 

Users 
    UserID (identity) 
    UserNAme (varchar) 
    UserEmail (varchar) 
    CreatedDate (datetime) 
    Active (int) 

todos los campos de fecha y hora por defecto a la hora actual, todos los campos de identidad son PK El campo de secuencia de detalles de la publicación es allí en caso de que no utilice el tipo de texto e ir con varchar para que pueda dividir una publicación en varios registros.

Aparte de esto, me vería en cualquier sistema de blogs de código abierto y ver lo que hicieron y restar lo que no necesito.

Espero que ayude

+0

Interesante, gracias. ¿Podría explicar por qué sugirió crear una tabla "PostDetails" por separado en lugar de combinar sus columnas con la tabla "Publicaciones"? – ProgrammerGirl

+1

dos razones: la primera es de desacoplamiento de datos para hacer una relación maestro/detalle (ya que de esta manera usted no tiene que traer su mejor post muy largo cuando lo que desea los títulos), y la segunda es el hecho de que usted puede terminar ir más allá de la capacidad de campo (tal vez no sea un problema con un campo de texto, pero si vas con varchar, lo que harías, significa que tienes una longitud máxima fija por fila). Con todo es sólo una cuestión de preferencia me gusta separar la información tanto como sea posible –

+0

Podría explicar el uso de la columna de la secuencia (int) que ha utilizado en la tabla PostDetails en su respuesta? ¿Para qué se usa la columna Secuencia? – bobble14988

Cuestiones relacionadas