Вопрос о нескольких составных первичных ключах Ruby On Rails - PullRequest
1 голос
/ 10 июля 2010

Я новичок в Ruby, и у меня есть таблицы с этими первичными ключами:

  1. transaction_types:
    • transaction_type
  2. transaction_headers:
    • transaction_type
    • transaction_year
    • TRANSACTION_ID
  3. transaction_details:
    • transaction_type
    • transaction_year
    • TRANSACTION_ID
    • CITY_ID
    • ticker_id
  4. тиккеры:
    • CITY_ID
    • ticker_id

Конечно, у этих моделей есть другие не первичные ключи, такие как customer_id, connection_id или date или user_id и т. Д., Но они не важны для отношений, поскольку это просто данные, или у меня нет проблем с ними.

Это мои модели:

#models  

class transaction_type < ActiveRecord::Base  
  has_many :transaction_headers, :foreign_key=>'transaction_type'  
  has_many :transaction_details, :foreign_key=>'transaction_type'
  has_many :tickers, :through=>:transaction_details
end

class transaction_header < ActiveRecord::Base  
  belongs_to: transaction_types, :foreign_key=>'transaction_type'
  has_many :transaction_details
  has_many :tickers, :through=>:transaction_details
end

class transaction_detail < ActiveRecord::Base
  belongs_to: transaction_headers
  has_many :tickers
end

class ticker < ActiveRecord::Base

end

Мне нужно установить связь с каждым соответствующим первичным ключом. Для транзакции_типа до транзакции и транзакции_header было легко, но как мне создать связь между транзакции_заголовка и транзакции_детали , а также между транзакции_Детали и тикером ? Как создать: сквозные ключи для тикеров отношений?

Спасибо

1 Ответ

4 голосов
/ 10 июля 2010

ActiveRecord не поддерживает составные первичные ключи из коробки, но этот плагин должен работать:

http://compositekeys.rubyforge.org/

У них есть хорошее руководство по началу работы.

Надеюсь, это поможет!

...