Tengo una tabla de usuario principal que tiene algunos atributos comunes de un usuario (nombre, correo electrónico, teléfono) y luego tengo 2 tablas más (digamos x e y) que contienen los diferentes atributos de los dos tipos de usuarios. Puede decir (x1, x2, x3) y (y1, y2, y3). Un usuario solo puede ser de un tipo. Tengo una columna 'user_id' en la tabla x e y y una columna de clave principal. la columna 'user_id' hace referencia a la columna 'id' en la tabla de usuarios. ¿Sería correcto si elimino la columna 'id' (que sirve como clave principal) en la tabla x e y y en su lugar utilizo la columna 'user_id' como clave principal y forign? estoy usando postgres 9.6.
Su escenario está perfectamente bien, no hay problema con eso. Se conoce como supertipo y subtipo en la terminología de las bases de datos.
Para leer más sobre eso, visite el enlace.