Rails as a frontend for an existing application, best practi

Hi everybody,

I am starting to write a new, web-based frontend for an existing
Delphi / MSSQL application. I am now looking at Rails as I want to use
the framework’s convenient ways to build a smooth user experience.
Now, I have a few basic concerns, which I couldn’t really answer
myself by using Google.

We will transfer a lot of data (products, customers, invoices, etc.)
from the local MSSQL database to the webserver’s MySQL database.
Rowcount is in the 100,000. This data will be used for displaying or
searching purposes only, that means there will absolutely nothing but
reads from these tables. They all come with their primary and foreign
keys (everything is integer).

Now, I would like to use these existing primary keys for my Rails
application - instead of having another “id” primary key generated by
Rails. Will that give me problems later on? Is it an absolute
necessity for Rails to give all tables it’s own primary key? I don’t
understand ActiveRecord well enough to see the consequences.

If it is indeed possible, then it should be okay to import data
outside of Rails, namely by mysqlimport from the command line. I did
some tests with ar-extensions and fastercsv, but they are both not
workable solutions because of server load and speed issues. Will Rails
ever notice if I fill it’s tables from the “outside” ?

For some of these tables, I will even use data with gaps (skipped rows
when exporting), so there are gaps in the primary keys. Is that a
problem?

Last question - if I use helpers such as act_as_taggable on these
tables, is it possible to keep the tags in a separate table? Remember,
I can only use the imported data for reading.

Maybe now you’re thinking I shouldn’t use Rails for this project in
the first place - if so, I also would like to hear what you have to
say.

Thanks a lot guys, I appreciate any help, you don’t have to answer all
the questions of course :wink:

Ben

Answers:

“I would like to use these existing primary keys for my Rails
application”?
YES. You can override the built-in primary key standard ID so that you
can
connect your own primary keys instead.

"Will Rails
ever notice if I fill it’s tables from the “outside” ?
NO. I really do not think so but if you change the database schema he
might
be really angry at you.

“ast question - if I use helpers such as act_as_taggable on these
tables, is it possible to keep the tags in a separate table?”
I believe the whole IDEA is to store all taggables in a separate table
because you should not have to change anything in your current databas
setup.

Good luck!

Read my blogg in English at www.swerails.se

2007/7/18, Ben [email protected]:

We will transfer a lot of data (products, customers, invoices, etc.)
understand ActiveRecord well enough to see the consequences.

Ben

Andreas Kviby
Telefon 070-352 66 76
E-post [email protected]