Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]11735[/thread]

Beziehungsfrage

Leser: 1


<< >> 9 Einträge, 1 Seite
pktm
 2008-05-02 13:53
#109094 #109094
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Nein, das ist kein Spam :D

Ich habe hier Fotos, die man in Foroalben einsortieren kann. Jedes Foto kann genau 1mal in ein Fotoalbum einsortiert werden.
Das ist doch dann eine 1:1-Beziehung oder?

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2008-05-02 14:25
#109096 #109096
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich würde eher auf 1:n tippen, da ein Fotoalbum ja mehr als 1 Foto haben kann, oder?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
renee
 2008-05-02 14:27
#109097 #109097
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Mmhhh... wenn ich es mir recht überlege, kann man auch das mit 1:n nicht genau sagen. Dazu bräuchte man mehr Infos zu der Anwendung. Ist es ein personalisiertes Fotoalbum? Als hat z.B. jeder User einer Community ein eigenes Album und können einzelne Fotos auch in den Fotoalben meherer User vorkommen? Dann wäre es m:n.

Das ein Foto in einem bestimmten Album nur einmal vorkommt, kannst Du über UNIQUE erreichen!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Taulmarill
 2008-05-02 15:20
#109098 #109098
User since
2004-02-19
1750 Artikel
BenutzerIn

user image
Wenn jedes Foto nur in maximal ein Album eingesetzt werden kann, dann würde ich das darüber lösen, dass ich beim Foto in einer zusätzlichen Spalte angebe, in welchem Album es sich befindet. Darüber hat man dann eine 1:n Beziehung (ein Album mit n Fotos).
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
pktm
 2008-05-02 15:38
#109100 #109100
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Taulmarill+2008-05-02 13:20:24--
Wenn jedes Foto nur in maximal ein Album eingesetzt werden kann, dann würde ich das darüber lösen, dass ich beim Foto in einer zusätzlichen Spalte angebe, in welchem Album es sich befindet. Darüber hat man dann eine 1:n Beziehung (ein Album mit n Fotos).


Ja, so habe ich es auch gemacht. Aber ich dachte, das wäre dann 1:1.
Edit: also 1:1 bedeutet, dass jedes Album nur ein Foto haben könnte?

Mehr Infos:
Ich möchte für ein Hotel Fotos von Zimmern in verschiedenen Alben ablegen. Da gibt es natürlich Doppelzimmer, Einzelzimmer, Suiten usw.
Und die gruppiere ich in einzelne Alben, welche jeweils eine eigene Überschrift bekommen. Das ist dann relevant, wenn man durch die Miniaturansichten der Bilder navigiert, da dort die Überschrift drüber steht. Sozusagen als zusätzliche Information.

Grüße, pktm
http://www.intergastro-service.de (mein erstes CMS :) )
renee
 2008-05-02 15:55
#109103 #109103
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
pktm+2008-05-02 13:38:38--
Taulmarill+2008-05-02 13:20:24--
Wenn jedes Foto nur in maximal ein Album eingesetzt werden kann, dann würde ich das darüber lösen, dass ich beim Foto in einer zusätzlichen Spalte angebe, in welchem Album es sich befindet. Darüber hat man dann eine 1:n Beziehung (ein Album mit n Fotos).


Ja, so habe ich es auch gemacht.
War ja auch meine erste Antwort ;)

Quote
Aber ich dachte, das wäre dann 1:1.
Edit: also 1:1 bedeutet, dass jedes Album nur ein Foto haben könnte?

Genau. Du musst Dir die Beziehungen immer von beiden Seiten anschauen. Wieviele Fotos kann ein Album haben? (n) Zu wievielen Alben darf ein Foto gehören? (1)
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sid burn
 2008-05-02 17:02
#109106 #109106
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Denk dir bei den Beziehungen immer beide wege einmal aus. Das linke nimmst du immer als eins. Danach bildest du sätze so wie unten und nimmst nur den rechten teil. Dann hast du deine nötige beziehung.

Also wenn du Foto und Album hast dann.
1) Foto -> Album (Ein Foto hat...
2) Album -> Foto (Ein Album hat...

Erstes Beispiel:
Ein Foto kann in mehreren Alben vorkommen (1:n)
Ein Album kann mehrere Fotos haben (1:n)

Daraus resultiert dann eine (n:m) beziehung


Zweites Beispiel:
Ein Foto kann in einem Album vorkommen (1:1)
Ein Album kann mehrere Fotos haben (1:n)

Daraus resultiert dann eine (1:n) beziehung


Drittes Beispiel:
Ein Foto kann in einem Album vorkommen (1:1)
Ein Album kann ein Foto haben (1:1)

Daraus resultiert dann eine (1:1) beziehung.


Ansonsten ein anderer Ansatz ist es nach objekten zu denken. Du hast einmal ein Album mit Attributen und einmal hast du ein Foto mit Attributen. Beides sind unterschiedliche Objekte können also schon keine 1:1 beziehung haben. Bzw je nachdem was du tust kannst du es schon machen. Wenn du aber irgendwann mal erweiterst wirst du dir wahrscheinlich dann ins knie schießen. Oder die SQL abfragen werden unnötig kompliziert.

Und eigentlich solltest du den Schritt schon davor getan haben, den dadurch schließt du automatisch 1:1 beziehungen aus. Also beim DB Design denkst du dir alle Komponenten aus. Denkst dir die Attribute aus welches jedes Objekt haben kann. Und zuletzt denkst du darüber nach ob die einzelnen Komponenten 1:n oder n:m zueinander stehen. 1:1 kann in dem Fall schon gar nicht mehr auftreten wenn du so vorgehst.

Ich würde allerdiengs zu N:M zu raten. So könnte man ein Foto gleichzeitig unter der Rubrik/Album "Fun" aber gleichzeitig auch "Hobby" oder gleichzeitig auch "Urlaub" einordnen...
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
pktm
 2008-05-02 18:05
#109109 #109109
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
sid burn+2008-05-02 15:02:10--
Ich würde allerdiengs zu N:M zu raten. So könnte man ein Foto gleichzeitig unter der Rubrik/Album "Fun" aber gleichzeitig auch "Hobby" oder gleichzeitig auch "Urlaub" einordnen...


Jepp, bei einer normalen Galerie ist das mit Sicherheit der richtige Weg. Aber: genau das ist der Unterschied dieses Programms zur normalen Galerie. Mein Programm fällt kleiner auf, weist mehr Verzierungen (JavaScript und so) auf und ist empfindlicher in der Wartung (weil eben jedes Bild in nur 1 Album darf).

Dafür ist es für den genannten Zweck allerdings perfekt geeignet.
Ich könnte mir nämlich vorstellen, dass ein Benutzer sich beim Durchsehen der Fotos sonst blöde vorkäme, wenn er eins doppelt fände, wenn er die *verschiedenen* Zimmer ansehen möchte :)

Grüße, pktm

Edit: btw, kennt ihr auch schon alle CGI::Application::PhotoGallery ?
http://www.intergastro-service.de (mein erstes CMS :) )
sid burn
 2008-05-02 19:51
#109113 #109113
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Quote
Jepp, bei einer normalen Galerie ist das mit Sicherheit der richtige Weg. Aber: genau das ist der Unterschied dieses Programms zur normalen Galerie. Mein Programm fällt kleiner auf, weist mehr Verzierungen (JavaScript und so) auf und ist empfindlicher in der Wartung (weil eben jedes Bild in nur 1 Album darf).

Du kannst es ja trotzdem als N:M Lösen.
Ob ein Bild schon in einem anderen Album drin ist kannst du ja mit einem einziegen SQL Statement abfragen und somit dann in deiner Applikation steuern ob nun das Bild hinzugefügt wird oder nicht.

Sofern du dich später dann doch mal umentscheidest haust das Statement einfach wieder raus. Damit bist du sehr flexibel.

Und ob das erlaubt ist oder nicht kannst du damit dann sogar über einen Konfigurationsparameter steuern.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de
<< >> 9 Einträge, 1 Seite



View all threads created 2008-05-02 13:53.