Rodrigo Dominguez
2006-Jan-28 02:47 UTC
[Rails] having problems to map a existing schema into model classes
Hi, I?m doing a project for a company (my first big project in rails). The company alredy has a database schema, with lots of data, so I don?t want to change the database schema, but I don?t know how to map some associations. Example: Table: application Primary Key: idapplication Table: module Primary Key: idmodule Foreign Key: idapplication References aplicattion: idapplication Table: category Primary Key: idcategory Foreign Key: idapplication References application: idapplication Foreign Key: idmodule References module: idmodule An application has manies modules and a module has manies categories. Ok, I guess that?s the easy one, the first case Then I have another cases, in example Table hours: Primary key: id Foreign key: idpar Refeernces: hours :id An hour tuple has a relation with another hour tuple by the idpar key, so in example Hour id: 1 idpar: 2 Hour id: 2 idpar: 1 Another case: Table user Primay key: iduser Table work: Primary key: idwork Foreign key: iduser references user: iduser Foreign key: idcreator references user: iduser So, a work has a user assigned, a user who is a creator and a user who is an it person Another case: Table user: Primary key: iduser Table work: Primary key: idwork Table user_work: Foreign key iduser references user: iduser Foreign key idwork references work: idwork So, a user is related to many works and a work is related to many users, no primary key in table user_work, so I don?t know what to do there And the last one: Table status_sir Primary key: idstatussir Table status_sir_next Foreign key: idstatussir references status_sir: idstatussir Foreign key: idstatussir_next references status_sir: idstatussir No primary key in the table status_sir_next, so I don?t know what to do, the idea is that if you are in state 2, then you will have two tuples in status_sir_next: Idstatussir: 2 Idstatussir_sig: 3 Idstatussir: 2 Idstatussir_sig: 4 So now you know that if you are in state 2 you can go to state 3 or 4 Well, that?s all, I already did something, in example: class Aplicacion < ActiveRecord::Base #Setear el nombre de la tabla y la primary key set_table_name "aplicaciones" set_primary_key "idaplicacion" end Sorry for the spanish, btw, I know how to set the table name and the primary key, but I get lost when a table has not a primary key. Besides, I don?t know how to specify the relations with belong_to and has_many in these tables, I readed some things about the :class_name, :foreign_key and :conditions hash options but I just don?t know how to use them in those cases. Thank you for your time Rodrigo Dom?nguez Consultor Av. Directorio 183 1? Piso Tel: 4921-1648 / 4926-1067 Cel: 15-5695-6027 <mailto:rorra@rorra.com.ar> rorra@rorra.com.ar <http://www.rorra.com.ar/> www.rorra.com.ar -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060128/e830cbe8/attachment-0001.html