Cita: estos son los campos a los que me referia al decir "crear una nueva columna de tipo autoincrement (por ejemplo) como clave primaria" ya quee son campos que no existen en la realidad, es decir, una provincia no tiene un identificador "real" sino que es algo ficticio que se le asigna para poder "Identificarlo", por ejemplo, haciendo un autoincrement o poniéndolo tu "a mano"
Bueno, en realidad, si te fijas con cuidado, yo no he puesto esos ID como autoincrementales. Ni siquiera como INT, sino como varchar, porque estoy suponiendo que en el caso de los trabajos se trata de un sistema de codificación definido para el sistema basado en códigos alfanuméricos, o bien en códigos establecidos por algún sistema ya establecido, por ejemplo el usado por el fisco en cada país.
En el caso de las provincias, tampoco estoy usando un sistema hecho a mano o de autoincrementales, sino que tomo un VARCHAR(8), suponiendo que se use, por ejemplo, el CPA argentino, es decir, el sistema de codificación postal, que no sólo me indica la provincia, sino incluso la ciudad, y la ubicación en la manzana y hasta el lado de la calle del sitio. El del usuario es el numero de documento (bien puede ser el username).
Sólo uso numéricos para el ID de la oferta, pero el mismo se puede cambiar por otro.
El modelo en si no requiere de autoincrementales. Solamente requiere que definas un sistema de identificación para la tabla. En ese caso, incluso, en la aplicación el usuario podría elegir un oficio o trabajo de un combo de posibilidades prefijadas, por lo que seleccionaría el nombre, pero lo que quedaría almacenado sería el código. Eso se resuelve, como digo, en la aplicación y es invisible para los usuarios.
¿Se comprende la idea?