Foreign-key confusion

Hi,

I am a bit confused about managing the relationship between two of my tables:

I have developed a script using scRUBYt that scrapes data from a website and dumps the following four fields into my Shows table:

class CreateShows create table :shows do |t|    t.string :date    t.string :venue    t.string :info    t.string :comics

The second table I created is called Theatres:

class CreateTheatres create table :theatres do |t|    t.string :name    t.string :address    t.string :website_url    t.string :location

The :venue field in the Shows table corresponds to the :name field in the Theatres table. How do I set up a relationship whereby Theatres have many shows, while defining this (:venue - :name) relationship as the link?

I have tried the :set_primary_key & :foreign_key => ... methods without success. Does the primary or foreign key always have to be an integer?

Any suggestions would be much appreciated..

Hi,

I am a bit confused about managing the relationship between two of my tables:

I have developed a script using scRUBYt that scrapes data from a
website and dumps the following four fields into my Shows table:

class CreateShows create table :shows do |t|   t.string :date   t.string :venue   t.string :info   t.string :comics

The second table I created is called Theatres:

class CreateTheatres create table :theatres do |t|   t.string :name   t.string :address   t.string :website_url   t.string :location

The :venue field in the Shows table corresponds to the :name field in the Theatres table. How do I set up a relationship whereby Theatres
have many shows, while defining this (:venue - :name) relationship as the link?

I have tried the :set_primary_key & :foreign_key => ... methods
without success. Does the primary or foreign key always have to be an integer?

A belongs_to relationship has to go through the primary key of the
other model and setting the primary key of theatres to be the name
would be a bad thing (eg what if two towns had a theatre by the same
name). The rails way would be to do away with the venue column and have a
theatre_id one instead