Gracias por el paquete. Con eso hay algunos cuantos detalles que sugeriría que reconisderes y algunas cosas que no se entiende qué son o cómo se relacionan.
Las tablas:
Cita: - PG_ARTICULO_TITULO
- PUBLICACION
- ARTICULO
- OPORTUNIDAD
- COMERCIO
No se comprende qué representan exactamente o qué relación hay entre ellas. En el caso de las dos últimas da la impresión de que los nombres están colocados y que la relación surge de una normalización mal creada, ya que algunos atributos de la última parecen pertenecer a otra cosa.
Otro detalles son las fechas. Salvo por razones muy específicas (usar unixtime, por ejemplo), las fechas deben ir en DATE, DATETIME o TIMESTAMP, pero no deben ponerse como INT o VARCHAR. Si las fechas se usan como unixtime corresponde entonces que uses BIGINT UNSIGNED y no un simple INT, ya que el unixtime representa el entero sin signo de segundos entre 1970 y la actualidad. Como ese entero no tiene signo debes usar una columna sin signo.
No se usan VARCHAR porque las fechas se deben almacenar en su formato natural (aaaa-mm-dd hh:mm:ss) y no como cadenas. Si luego necesitas la fecha en un formato especial, simplemente usas DATE_FORMAT() o bien lo haces en la aplicación con number_format() si usas PHP. Pero
no lo haces en la tabla de la base.
Con las modificaciones restantes según mi planteo quedaría así: