RubyRails - Probleme mit composite_primary_keys

Hallo zusammen,

im Rahmen eines Projektes müssen wir mit Ruby on Rails arbeiten. In unserem Projekt sollten wir Tabellen erstellen und für eine Tabelle brauchen wir einen zusammengesetzten Primärschlüssel aus zwei Primärschlüsseln anderer Tabellen.

Ich hatte mich schon schlau gemacht im Internet und bin dabei auf „composite_primary_keys“ gekommen. (http://compositekeys.rubyforge.org/)
Ich habe composite_primary_keys wie im Link unter cmd installiert und alles gemacht, wie es im Link geschrieben ist. Nun muss ich aber feststellen, dass composite_primary_keys ein Problem mit der ActiveRecord Version von Rails besitzt. Ich kopiere hier mal den Log:

 ?[31mBundler could not find compatible versions for gem "activerecord":
 In Gemfile:
 composite\_primary\_keys (= 3.1.8) depends on
 activerecord (~\> 3.0.0, \>= 3.0.5)

 rails (= 3.1.0.beta1) depends on
 activerecord (3.1.0.beta1)

das heißt, dass mein Rails eine andere Activerecord-Version braucht als composite_primary_keys. Nun habe ich noch weiter gegoogled und in einer der Quellen hieß es, dass seit einigen Tagen eine neue composite_primary_keys Version vorhanden ist, nämlich 3.2.0.beta1. (https://github.com/drnic/composite_primary_keys/blam…)
Also habe ich mir gedacht, ich deinstalliere die 3.1.8er Version und versuche, manuell die 3.2.0.beta1- Version zu installieren.

c:\src\script\testtest2\>gem install composite\_primary\_keys --version '3.2.0.beta1'
ERROR: Could not find a valid gem 'composite\_primary\_keys' (= 3.2.0.beta1) in a
ny repository
ERROR: Possible alternatives: composite\_primary\_keys

anscheinend kann man die neuere Version allerdings noch nicht installieren.

Nun meine Frage:
Wie soll ich vorgehen, um composite_primary_keys nutzen zu können? Eine ältere Activerecord-Version nutzen? Ich weiß nicht, wie ich dem Problem entgegensteuern kann… Oder gibt es auch eine Möglichkeit ohne ActiveRecord und composite_primary_keys zusammengesetzte PrimaryKeys zu benutzen? Bin leider blutiger Anfänger! :frowning:

danke im Vorraus, es ist sehr wichtig :confused:

composite_primary_key generell
Moin, S.anna,

zusammengesetzte Primärschlüssel bereiten immer Ärger, selbst wenn das DBMS nicht zickt - spätestens beim Verknüpfen. Ich bevorzuge deshalb einwertige Schlüssel (meist Autowert) und lege dazu auf die Felder des Schlüsselkandidaten einen Index, der Duplikate verhindert.

Gruß Ralf

hallo!

Vielen Dank für die schnelle Antwort! Hm, das klingt nicht gut, wenn zusammengesetzte Primärschlüssel wirklich Probleme bringen sollen.
Jedoch bin ich mir nicht sicher, ob wir im Rahmen des Projektes darauf tatsächlich verzichten können.

Ich bevorzuge deshalb einwertige Schlüssel (meist Autowert) und lege :dazu auf die Felder des Schlüsselkandidaten einen Index, der Duplikate :verhindert.

Verzeihung, ich bin noch nicht so mit Ruby on Rails und Datenbanken bewandert. Was meinst du damit genau? Heißt, das es wäre besser, einen Schlüssel zu nehmen, der nur aus einer Zahl besteht (als Autowert der Schlüssel, den Rails bereits automatisch als id erstellt)? Und meinst du mit dem zweiten Teil des Satzes gemeint?