Thread DBIx::Class -> has_many und belongs_to (8 answers)
Opened by bloonix at 2007-09-23 15:20

bloonix
 2007-09-23 17:16
#99884 #99884
User since
2005-12-17
1615 Artikel
HausmeisterIn
[Homepage]
user image
Hallo Renee,

danke für die Antwort. So habe ich das auch in einigen Examples
gelesen, was ich aber dann nicht so ganz verstehe ist, warum es

foreign.id

heißt, denn "id" ist in den Tabellen "user" und "group" ein Primär-
schlüssel und kein Fremdschlüssel. Der Fremdschlüssel liegt
in der Tabelle user_group.

Vielleicht verstehe ich die beiden Bedeutungen "Primary Key" und
"Foreing Key" auch falsch. Laut Wikipedia heißt es:

Quote
Primärschlüssel: Ein ausgewählter Schlüsselkandidat. Die Werte dieses Schlüssels
können in einer anderen Tabelle als Fremdschlüssel verwendet werden.


Das heißt doch, das id der Primärschlüssel und user_id in der fremden Tabelle
der Fremdschlüssel ist.

Quote
Fremdschlüssel: Ein Attribut oder eine Attributkombination einer Relation, welches auf
einen Primärschlüssel (bzw. Schlüsselkandidat) einer anderen oder der gleichen Relation
verweist. Ein Fremdschlüssel in einer Relation R ist in aller Regel kein Schlüssel im
engeren Sinne für diese Relation. Es handelt sich aber um einen Sekundärschlüssel.


Das soll doch heißen, dass user_id in der Tabelle user_group das Attribut Fremdschlüssel
erhält und auf den Primärschlüssel id in der Tabelle user referenziert.

Aber warum es dann in belongs_to() foreign.id heißt, verstehe ich nicht. Sollte es nicht
primary.id und self.user_id heißen? Denn ein Fremdschlüssel muss nicht UNIQUE sein.

Erleuchte mich :-)
What is a good module? That's hard to say.
What is good code? That's also hard to say.
One man's Thing of Beauty is another's man's Evil Hack.

View full thread DBIx::Class -> has_many und belongs_to