Empfehlungen: Erweiterte Suche

foreignkey_zurdnung

Datenbankobjekte strukturieren und validieren

foreignkey_zurdnung

Beitragvon pixitrixi » Do 21. Jan 2010, 10:20

Hallo kurze Frage:

Annahme:
2 Tabellen, davon eine die Adressliste
bei der anderen Tabelle soll die Adressliste eingefügt werden mit adress_id.
bis hier noch alles klar.
Meine Frage nun wie mache ich es wenn ich zwei verschiedene Adress_id
in diese Tabelle einfügen will?
Das geht mit den herkömmlichen Konventionen ja nicht mehr.
bei der zweiten Adresse muss ich was deklarieren, aber wie?

Ich freue mich auf eine Antwort!
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: foreignkey_zurdnung

Beitragvon euromark » Do 21. Jan 2010, 10:38

damit hast du die relation genau falsch rum

nich "Address hasMany User" sondern "User hasMany Address"

damit kommt bei der adresse die user_id rein (und damit darf es beliebig viele pro user geben, aber jede adresse ist genau 1 user zugeordnet)
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: foreignkey_zurdnung

Beitragvon pixitrixi » Do 21. Jan 2010, 12:04

Danke für deine Antwort!
Sorry ich hab mich wohl doof ausgedrückt, weil das Problem anders ist:
Stell dir vor ich will in einer Tabelle speicheren wo die Liederadresse ist und wo die Rechnungsadresse ist.
Beide Adressen kommen aus der Adress-Tabelle.
So und ich will wissen wie ich im view es Anstelle dass bei beiden Adressen die Relation besteht,
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: foreignkey_zurdnung

Beitragvon mivogtLU » Do 21. Jan 2010, 12:52

Hallo pixitrixi

Du wirst wohl eine haben Tabelle Kunden
id
telefon
bankverbindung


Dann die
Tabelle Lieferadressen
id
strasse
plz
ort


Dann die
Tabelle Rechnungsadresse
id
strasse
plz
ort


Wie wäre es dann mit einer
Relationstabelle Kunden_Adressen_Vorgang
id
kunde_id
Rechnungsadresse_id
Lieferadresse_id


Letzte besteht nur aus Schlüsseln und bildet die Verknüpfung-
Somit kann jeder Kude bei jedem Auftrag jeder Rechnungs- oder Lieferadresse haben.
Das sollte dein Problem abdecken denke ich

Gruß

MV
mivogtLU
 
Beiträge: 46
Registriert: Di 12. Jan 2010, 21:22
Wohnort: 67059
CakePHP-Version: 1.3 final
OS: Linux, Win XP-Vista

Re: foreignkey_zurdnung

Beitragvon pixitrixi » Do 21. Jan 2010, 14:18

Hallo!

Vielen Dank für die liebe Bemühung!
Ich will doch lieber bei meinem Konzept bleiben dass ich eine einzige Adressliste habe.
So wenn z.B. Lieferadresse und Rechnungsadresse gleich sind, oder bei einem anderen Datensatz diese genau umgekehrt ausfallen,
ich diese nicht doppelt bei der Tabelle Lieferadresse bzw. Rechnungsadresse eingeben muss.


Ich hab es auch schon wo gelesen wie man im Model es deklariere dass z.B.
lieferadresse => adress_id
sowie rechnungsadresse => adress_id.

ist es so verständlicher was ich meine?
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: foreignkey_zurdnung

Beitragvon mivogtLU » Do 21. Jan 2010, 18:56

dann ist doch alles einfach

tabelle kundenauftrag
id_adresse
id_adresse
restdaten


tabelle adressen
id
adressdaten


das soltle dann per relation gehen
weil für cake und die db sind das 2 felder
dein problem wird evtl. sein dass felder nicht den gleichen namen haben dürfen
d.h. wie man das in cake an ein form bindet dass ein auswahlfeld sich aus einer bestimmten tabelle speist
mivogtLU
 
Beiträge: 46
Registriert: Di 12. Jan 2010, 21:22
Wohnort: 67059
CakePHP-Version: 1.3 final
OS: Linux, Win XP-Vista

Re: foreignkey_zurdnung

Beitragvon pixitrixi » Di 26. Jan 2010, 14:25

ja genau so meinte ich das!
Und wieder richtig, MySqlAdmin lässt zweimal adress_id nicht zu.
Nur wäre interessant wie man hier nun vorgeht!?
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: foreignkey_zurdnung

Beitragvon euromark » Di 26. Jan 2010, 16:41

davon abgesehen dass es halt nich ganz so sauber ist, mag das hier in diesem fall natürlich durchaus akzeptabel sein (mehr als 2 lieferadressen lassen sich halt nich mehr abbilden etc!)

einfach was anderes nennen

some_other_id

und dann manuell n zweites belongsTo/hasMany dazu basteln (per copy and past) mit dem foreign_key "some_other_id"
euromark
 
Beiträge: 618
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.1
OS: Windows

Re: foreignkey_zurdnung

Beitragvon pixitrixi » Di 26. Jan 2010, 19:27

danke sehr! ich werde es morgen versuchen...
sollte es klappen dann vielen Dank im voraus :-)
pixitrixi
 
Beiträge: 25
Registriert: Sa 8. Aug 2009, 17:07

Re: foreignkey_zurdnung

Beitragvon havanna » Di 26. Jan 2010, 23:04

In einem anderen Beitrag schreibst du, dass dein Modell noch sehr "lebendig" ist. Abgesehen davon, dass das schlecht ist (aber du wirst es im Laufe der Zeit selbst merken) sollte dich dieser Umstand eben gerade deshalb nicht hindern, diese Beziehung zu überdenken.

So wie du es beschreibst, soll es eine n:m Beziehung sein. Und das geht dann nur mit einer Verknüpfungstabelle.

Was manchmal hilft: Baue dein Modell zuerst einmal in Access und schaue dir die Beziehungen an. Dann merkt man recht schnell (ohne viel Schmalz in die Entwicklung drum herum zu investieren) wo es nicht stimmt.
:!: Merke: Das Modell ist der Kern deiner Anwendung. Das "Drumherum" ist austauschbar.

Ciao Thomas
Benutzeravatar
havanna
 
Beiträge: 191
Registriert: Mi 15. Okt 2008, 23:12
Wohnort: Bodman-Ludwigshafen
CakePHP-Version: 1.2.x
OS: WIN

Nächste

Zurück zu Models

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast