Mailinglisten-Archive |
> > >n-m beziehungen loest man am elegantesten (sowohl datenbanktechnisch okay >als auch einfah zu handhaben) mit einer sogenannten cross-table , die >"zwischen" den tabellen tbl_user und tbl_interessen plaziert wird. > >d.h. du brauchst insgesamt 3 tabellen: > >tbl_user >******** >id_user, user_name, etc... > >tbl_interessen >************** >id_interesse, interesse, etc... > >tbl_user_interesse (cross table) >****************** >id, id_user, id_interesse > >die lösung mittels einer cross-table hat folgende vorteile: > >- du kannst die check-elemente für jedes interessenthema in das >eingabeformular automatisch einfügen mittels einer abfrage der tabelle >tbl_interessen und einem paar linien code. ändern sich die interessenthemen, >werden sie mehr, werden sie weniger: du brauchst nix ändern am >eingabeformular! > >- die struktur von tbl_user ist unabhängig von änderungen von interessen > >- informationen zu lesen aus diesen 3 tabellen ist denkbar einfach, z.b. >wenn du die users haben möchtest, welche ein bestimmtes interesse haben: > >wenn du die id_interesse hast: > >SELECT * from tbl_user, tbl_user_interesse >WHERE tbl_user.id_user = tbl_user_interessen.id_user >AND tbl_user_interesse.id_interessen = <bestimmte interessen-id> > >ansonsten wenn du nach einem string suchst: > >SELECT * from tbl_user, tbl_user_interesse, tbl_interessen >WHERE tbl_user.id_user = tbl_user_interessen.id_user >AND tbl_user_interessen.id_interesse = tbl_interessen.id_interesse >AND tbl_interessen.interessen IN '<suchtext>' Hallo , ich hätte auch eine Frage zu diesem Thema: Wie man die Tabellen abfragt ist jetzt klar aber wie füllt man sie ? Wenn man einen user in die table_user eintragt dann bekommt man automatisch eine Id und wenn man ein Interesse in die tabl_interesse einfügt hat man auch eine automatische id. Aber wie weiss die table_user_interesse wie was zusammengehört ? Ich meine dass ich nicht gleichzeitig die userid in die table_user und in die table_user_interesse eintragen kann, da ich sie ja erst bekomme wenn ich den user in die table_user eingetragen habe ! Wie trage ich den Zusammenhang in die dritte Tabelle automatisch ein (z.B Meier , Franz, Fernsehen.) Wie macht man das ? Kann wer eine Lösung veröffentlichen da das glaube ich viele interessiert. Grüsse Michael --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive