Cita: El caso es que tengo que hacerlo en general para que sirva para cualquier base de datos.
Hay métodos, pero no sirven para todas las bases de datos, ya que no todas guardan esa información de la misma forma...
En el caso de MySQL, es posible determinar las relaciones a partir de analizar las estructuras mismas de las bases, que están contenidas en la base INFORMATION_SCHEMA, que es propia de este DBMS. Pero,, como ya te dije, no es igual en Oracle o en SQL Server, por lo que no es aplicable.