Suponga que desea compilar una base de datos para alguna aplicación web. Esta base de datos ya contiene muchas tablas y es posible que tenga que ampliarla en el futuro.Práctica recomendada para una tabla de "comentarios" en una base de datos relacional
Además, desea que el usuario final pueda comentar cualquier tipo de objeto en la base de datos.
Me gustaría encontrar una solución para esto sería lo suficientemente genérica para que no tenga que extenderla cada vez que agrego una nueva tabla en la base de datos.
pensé en lo siguiente:
Nombre de la tabla: Comentario
columnas:
- id: El ID de un comentario
- user_id: la identificación de la usuario que realiza el comentario
- object_table_name: la pestaña le donde el objeto comentado es
- object_id: id del objeto comentado en la tabla object_table_name.
- texto: el texto
- fecha: la fecha
Esta tabla especie de resolver mi problema, lo único que me preocupa es que el aspecto relacional de la misma es más bien débil (no puedo hacer object_id una clave foránea, por ejemplo). Además, si algún día necesito cambiar el nombre de una tabla, tendré que cambiar todas las entradas correspondientes en la tabla de comentarios.
¿Qué opinas de esta solución? ¿Hay algún patrón de diseño que me ayude?
Thanks.-
¿Es necesario que mantenga un registro histórico de estos comentarios? No puedo pensar en otra razón importante para crear una tabla de comentarios por separado de cualquier tipo. – jwiscarson
¿Es posible tener más de un comentario por par (object_table_name, object_id)? Si siempre es 1: 1, simplemente incluya los comentarios como una columna extra en el object_table_name. Si es 1: N, entonces será necesaria una tabla separada. –