No es que la pregunta sea básica, es que con lo que planteas se percibe que no conoces ni los fundamentos de las bases de datos, ni el modelo E-R aplicado a BBDD, o por lo menos, jamás has oído hablar de Normalización de Bases de Datos.
Resulta algo difícil explicar claramente por qué el modelo que usas está mal pensado, es ineficiente, no optimizable y de compleja corrección o mejora. Te faltan detalles básicos de diseño.
Veamos.
Una base de datos se basa en el paradigma Entidad - Relación. Allí todo lo representable, físico o no, son Entidades que engloban objetos que poseen el mismo conjunto de atributos (que no quiere decir los mismos datos). De esa forma, una misma entidad puede contener diferentes
instancias, cada una de ellas referida a un único objeto del universo.
COno son generalizaciones, no requieren más que un único almacenamiento o tabla para ser guardados. ASí, una "lista de temas" es una entidad única que contiene N listas.
¿Se entiende?
No necesitas N tablas para N listas. Lo que necesitas es una sola tabla con un identificador único, cada una de ellas relacionada a otra, que puedes denominar "detalleDeLista", donde se guardan todos los componentes de todas las listas, cada una conteniendo el identificador de a qué lista pertenece y en qué orden.
Es decir que con dos únicas tablas puedes administrar N listas y N temas de cada lista...
Todo eso surge de los principios del modelo E-R y de las Bases de Datos Relacionales.
Creo que debes volver al diagrama y empezar de cero. Luego veremos qué se debe modificar en la aplicación para poder usar ese diseño de base.
La idea sería mas o menos así, cambiando la tabla
messages por
listadetemas:, por ejemplo: