las relaciones entre las tablas me quedo bien planteadas?
Casi en todos los sistemas a los que normalmente nos enfrentamos, manejan información como; estado civil, tipos de documento, países, departamentos, colores, tipo de sangre, sexo, marcas, líneas, etc.
Te pregunto: Las tablas que almacenarán esa información que te acabo de mencionar, tienden a crecer en el tiempo.
La respuesta es: NO
Entonces la verdad es que no tiene sentido llenarse de tablas que nunca van a crecer, para que montar una estructura llamada: Sexo, si ese atributo es único o se es hombre o se es mujer, esa tabla realmente sobra.
Por otra parte, hay estructuras que, si bien pueden modelarse aparte como en el caso de país, estado y ciudad, finalmente son estructuras que nunca crecen, salvo que algún país quisiera independizarse y de lugar a otro nuevo, pero es un evento que poco ocurre.
Lo que se suele hacer es montar una sola estructura llamada: List_Of_Value que almacena todos esos valores, y desde luego tiene que tener una columna llamada Type que hace referencia al tipo de dato al que se refiera; así lo hacen hoy SAP, Siebel, JD Edwards entre otros.
Pero es igualmente válido que lo quieras manejar aparte.
Si tipo de cliente puede tomar un solo valor, como en el caso del sexo, si debe ir aparte, así como lo tienes, pero si no, entonces esa tabla también sobra.
Lo que tienes que tener en cuenta es que, si un atributo puede adquirir más de un valor, estás frente a atributos multivaluados y necesariamente se deben sacar aparte a otra tabla, donde normalmente quedan tres tablas, cuando son relaciones de tipo M:M, donde la intermedia se roba las claves de quienes la conforman y de esta forma te queda en 3FN.