mySQL Design Frage
compu
- datenbank
Hallo,
also ich möchte ein Linkseitenprojekt anfangen.
Bin schon in der Planungsphase. Allerdings gibt es ein paar unbeantwortete Fragen hinsichtlich des DB Designs.
Folgendermaßen:
Es sollen in einer DB Links angelegt werden. Es sollen in der DB Infos hinterlegt sein was für Themengebiete auf den Webseiten besprochen/vorhanden sind. Nun gibt es aber auch von diesen Themengebieten noch Untergebiete.
BSP: Kochseite, Pasta, Kochen lernen,etc oder Seiten für Fortbewegungsmittel, Fahrräder, Autos,etc
Dafür würde ich in einer Tabelle infos zur Seite machen
1 Tabelle
id | name | url | webmaster
2 Tabelle
id | stichwörter
Wie sollten nun die anderen Tabellen aussehen ?
Solle ich in die 2. Tabelle als Verknüpfung den id wählen und dann in einer weiteren Spalte Stichhwörter ?
Oder Besser eine Tabelle mit id und dann Themen als rows und dann in einer 3. Tabelle die Zuordunung von 1. Tabelle zu allen Themen in der 2 Tabelle ?
Dann wird die 3 Tabelle aber sehr lang. Und wie ist es mit der Pflege der Links ? Da wäre die 2 Lösung wohl besser oder ?
Mann kann dann einfach weitere Zuordnungen in der 3. Tabelle machen oder löschen.
Bei der ersten Variante kann man sich bei den Stichwörtern schnell verschreiben oder verschiedene Begriffe verwenden und somit die Suche dadurch erschweren.
Jetzt bräuchte ich mal einen DB Zauberer. Gibt es hier jemanden mit viel Designerfahrung ?
Vielen Dank
Hallo,
guck dir mal die PerlBase an, link s.o.
Auf http://perlbase.xwolf.de/cgi-bin/perlbase.cgi?display=14&id=1 habe ich auch das DB Design einwenig beschrieben.
/Rolf
Hallo,
also ich habe grundlegende Ahnung von DB Design.
Nur in diesem Fall brauche ich Hilfe wie man das Linkproblem am cleversten angeht.
Wie genau soll mir das Link helfen, dass Du mir gegeben hast ?
Danke
Hallo,
also ich habe grundlegende Ahnung von DB Design.
Nur in diesem Fall brauche ich Hilfe wie man das Linkproblem am cleversten angeht.Wie genau soll mir das Link helfen, dass Du mir gegeben hast ?
Es ist eine Kleinigkeit die PerlBase zu einer Suchmaschine umzubauen. Links sind da ganz genauso hierarchisch abgelegt wie Dokumente. Nur dass es halt Links sind.
Lerne abstraktes Denken.
/Rolf
yo,
Lerne abstraktes Denken.
uhmm, ohne kommentar. mein tipp, von mensch zu mensch reden....
Ilja
yo,
freilich ;-)
Lerne abstraktes Denken.
uhmm, ohne kommentar. mein tipp, von mensch zu mensch reden....
Mach ich immer, beim reden bin ich sehr menschlich. Manchmal hab ich das Gefühl ich red' vor die Wand.
Schönen Sonntag!
Rolf
yo,
Mach ich immer, beim reden bin ich sehr menschlich. Manchmal hab ich das Gefühl ich red' vor die Wand.
wenn mich nicht alles täuscht, dann sagte sie, sie hat keine erfahrungen mit datenbank-design. deine schlussfolgerung daraus zu ziehen, sie sollte abstraktes denken lernen finde ich erstens logisch falsch und zweitens menschlich einfach mal daneben.
Ilja
hi,
Mach ich immer, beim reden bin ich sehr menschlich. Manchmal hab ich das Gefühl ich red' vor die Wand.
wenn mich nicht alles täuscht, dann sagte sie, sie hat keine erfahrungen mit datenbank-design.
Soso. ich zitiere mal
also ich habe grundlegende Ahnung von DB Design.
Genau hier sollte abstraktes Denken ansetzen.
Weil:
Wenn ich keine Erfahrung habe in bestimmten Dingen, da schaue ich , ob ich diese Erfahrungen von jemand anderem bekomme. Und genau das ist ein Vorgang, be dem abstraktes Denken ungemein hilfreich ist.
Schönen Tag noch!
Rolf
yo Rolf,
Genau hier sollte abstraktes Denken ansetzen.
zwischen ansetzen und lernen ist noch ein unterschied. mal ein einfache frage an dich. warum glaubst du, dass sie nicht abstrakt denken kann und das erst noch lernen muss ?
Ilja
yo Rolf,
Hallo
Genau hier sollte abstraktes Denken ansetzen.
zwischen ansetzen und lernen ist noch ein unterschied. mal ein einfache frage an dich. warum glaubst du, dass sie nicht abstrakt denken kann und das erst noch lernen muss ?
Sie wissen es sicher zu schätzen dass ich ihnen antworte. Sie haben bitte Verständnis dafür, dass ich nicht auf jede ihrer Fragen eingehen kann.
Möglicherweise kenne ich ihre Fragen auch nicht im Detail.
Möglicherweise finden sie Antworten auf ihre Fragen indem sie diesen oder andere Thread's in diesem Forum erneut aufmerksam durchlesen.
NICHT beantworten werde ich Fragen die sich auf DRITTE beziehen.
Dies hier ist ein FORUM , kein TRIBUNAL, deren gabs in der Nazizeit und in der DDR.
Beste Grüße.
Rolf Rost
yo,
ich weiss nicht, ob das sinn macht, erst meiner meinung nach unberechtigte kritik an jemanden zu äußern und sich dann in die beleidigte opfer-rolle zu stellen, wenn jemand kritik an der kritik äußert. ich persönlich hätte es besser gefunden, wenn du dich damit auseinander setzen würdest. aber jedem sein himmelreich.
Ilja
yo,
ich weiss nicht, ob das sinn macht, erst meiner meinung nach unberechtigte kritik an jemanden zu äußern und sich dann in die beleidigte opfer-rolle zu stellen, wenn jemand kritik an der kritik äußert. ich persönlich hätte es besser gefunden, wenn du dich damit auseinander setzen würdest. aber jedem sein himmelreich.
Ilja
Mein Freund,
Falls das Ihr Problem war.
Beste Grüße,
Rolf Rost
yo,
2 oder 3 tabellen hängt ein wenig davon an, wie die tabellen abgefragt werden, sprich willst du immer nur zu einem bestimmten link die stichworte ausgeben, dann würde ich 2 tabellen bevorzugen. oder aber du willst zu einem stichwort alle möglichen links anzeigen lassen. dann würde ich 3 tabellen bevorzugen.
Ilja
Hallo,
2 oder 3 tabellen hängt ein wenig davon an, wie die tabellen abgefragt werden, sprich willst du immer nur zu einem bestimmten link die stichworte ausgeben, dann würde ich 2 tabellen bevorzugen. oder aber du willst zu einem stichwort alle möglichen links anzeigen lassen. dann würde ich 3 tabellen bevorzugen.
Ja also das Formular soll so aussehen, dass der Besucher vorgegebene Stichwörter (Checkboxen) auswählen kann. Und dann die Links findet die am geeignetsten sind. Also die zutreffendsten kommen ganz oben in der Liste.
Wie ich dieses erreichen kann weiß ich nicht. Mann kann ja nur noch Spalten sortieren nicht nach wieviele Stichwörter Zuordnungen haben.
Danke
yo,
Ja also das Formular soll so aussehen, dass der Besucher vorgegebene Stichwörter (Checkboxen) auswählen kann. Und dann die Links findet die am geeignetsten sind. Also die zutreffendsten kommen ganz oben in der Liste.
hört sich nach drei tabellen an, wobei die frage ist, ob sich die vorgegebenen stichwörter auch mal ändern sollen oder immer gleich bleiben. in prinzip hast du zwei objekte/entitäten, einmal die links und zum anderen die stichwörter. die dritte tabelle wäre dann die bezehungstabellen zwischen den bden, wobei man die objekt-tabelle mit den stichwörter eventuell auch ganz weglassen kann und nur mit der link tabell und der beziehungstabelle arbeitet, sprich:
1. tabelle: id, link_name, link,....
2. tabelle: id_link, stichwort
Wie ich dieses erreichen kann weiß ich nicht. Mann kann ja nur noch Spalten sortieren nicht nach wieviele Stichwörter Zuordnungen haben.
nah nicht gleich die flinte ins korn werfen, alles geht. aber erst mal das daten-design, dann die abfragen... ;-)
Ilja
Hallo Ilja,
hört sich nach drei tabellen an, wobei die frage ist, ob sich die vorgegebenen stichwörter auch mal ändern sollen oder immer gleich bleiben. in prinzip hast du zwei objekte/entitäten, einmal die links und zum anderen die stichwörter. die dritte tabelle wäre dann die bezehungstabellen zwischen den bden, wobei man die objekt-tabelle mit den stichwörter eventuell auch ganz weglassen kann und nur mit der link tabell und der beziehungstabelle arbeitet, sprich:
- tabelle: id, link_name, link,....
- tabelle: id_link, stichwort
Du meinst also bei den Stichwörtern in der 2. Tabelle die Stichwörter als Typ Text und dann alle reinschreiben ? Aber was wenn ich verschiedene Namen für das gleiche verwende(unabsichtlich).
Dann kann ich ja auch keine Auswahlen als Checkboxen mehr vorgeben oder ich müsste die doppelt vorgeben, z.B. Haus UND Gebäude die dann nach dem gleichen suchen würden.
nah nicht gleich die flinte ins korn werfen, alles geht. aber erst mal das daten-design, dann die abfragen... ;-)
OK, ;)
Ich denke das 3 Tabellen besser wären. Aber die Zuordnungstabelle wäre dann ein vielfaches der Tabelle lang mit den Links.
Da es ja auf jeder Webseite mindestens ein Thema Stichwort gibt.
Würde die nicht mordslang ?
Wie ist es mit dem Durchsuchen der 3 Tabelle. Bei 500 Links hätte ich dann wahrscheinlich 2000 Zurodnungen in der 3. Tabelle.
Aber das ist trotzdem die beste Lösung oder ?
Vielen Dank
yo,
Aber was wenn ich verschiedene Namen für das gleiche verwende(unabsichtlich).
wenn es dir lieber ist, kannst du auch drei tabellen nehmen und dann über die id#s gehen in der beziehungstabelle. aber mit den verschreiben kann man verhindern, indem man in dem programm feste konstannten am anfag deklariert.
Dann kann ich ja auch keine Auswahlen als Checkboxen mehr vorgeben oder ich müsste die doppelt vorgeben, z.B. Haus UND Gebäude die dann nach dem gleichen suchen würden.
nah, geht alles. dafür spielt es keine rolle ob zwei oder drei tabellen.
Ich denke das 3 Tabellen besser wären. Aber die Zuordnungstabelle wäre dann ein vielfaches der Tabelle lang mit den Links.
die zwei tabellen, die ich vorgeschlagen habe, sind in prinzip drei tabellen, nur dass wir die eine weggelassen haben, weil dort sowieso nur eine id und die stichwörter drinne stehen würden. insofern kan man sie auch weglassen, zumal zwei tabellen schneller sein sollten.
Da es ja auf jeder Webseite mindestens ein Thema Stichwort gibt.
Würde die nicht mordslang ?
gute dbms vertragen viele einträge die auch mal in die millionen gehen. soviel wirst du nicht haben.
Wie ist es mit dem Durchsuchen der 3 Tabelle. Bei 500 Links hätte ich dann wahrscheinlich 2000 Zurodnungen in der 3. Tabelle.
das ist wenig für eine datenbank
Aber das ist trotzdem die beste Lösung oder ?
ich würde über die zwei tabellen gehen, die ich vorgeschlagen haben, wobei es in prinzip drei sind, nur aber in der beziehungstabelle keine id, sondern die stichwörter stehen.
Ilja
Hallo Ilja,
das war sehr aufschlussreich. Jetzt weiß ich schon eine Menge mehr. Vielen Dank.
wenn es dir lieber ist, kannst du auch drei tabellen nehmen und dann über die id#s gehen in der beziehungstabelle. aber mit den verschreiben kann man verhindern, indem man in dem programm feste konstannten am anfag deklariert.
Wie meinst Du im Programm? Ich gebe doch sämtliche Einträge über phpmyadmin ein. Wollte dafür keine Schnittstelle schreiben. ;)
die zwei tabellen, die ich vorgeschlagen habe, sind in prinzip drei tabellen, nur dass wir die eine weggelassen haben, weil dort sowieso nur eine id und die stichwörter drinne stehen würden. insofern kan man sie auch weglassen, zumal zwei tabellen schneller sein sollten.
Ja nur dann könnte man die Stichwörter später nicht mehr ändern.
Und dann kann ich wenn ich die, wie gesagt per phpmyadmin eingebe, auch keine Konstanten definieren.
ich würde über die zwei tabellen gehen, die ich vorgeschlagen haben, wobei es in prinzip drei sind, nur aber in der beziehungstabelle keine id, sondern die stichwörter stehen.
Wenn das Formular in der Zukunft nun auch noch mehrsprachig sein sollte ließe sich mit 3 Tabellen es doch so regeln oder ?
#Links
id |name | url
#Themen
id | topic_de |topic_en
#Beziehungstabelle
id_name | id_topic
Gruß Compu
yo,
Wie meinst Du im Programm? Ich gebe doch sämtliche Einträge über phpmyadmin ein. Wollte dafür keine Schnittstelle schreiben. ;)
auch da kann man einen trick anwenden, indem man erst mal nur einen oder zwei buchstaben eingibt. und später ändert man dann alle einträge mit einem update befehl. dann ist die wahrscheinlichkeit des verschreibens ncht so gross und man sieht die "falschen" datensätze, da sie noch immer aus kürzeln nach dem update bestehen.
Ja nur dann könnte man die Stichwörter später nicht mehr ändern.
wer sagt den sowas, wie oben beschrieben, ein update befehl bewirkt wunder.
Wenn das Formular in der Zukunft nun auch noch mehrsprachig sein sollte ließe sich mit 3 Tabellen es doch so regeln oder ?
ja, bei mehrsprachigkeit kommt noch ein weiteres attribut zu der zweiten tabelle dazu, dann macht es auf jeden fall sinn, über drei tabellen zu gehen.
Ilja
Hallo Ilja,
super, du hast sehr geholfen.
Sehr nett von dir.
Viele Grüsse und alles Gute!
Compu