27. juli 2009 - 16:37Der er
9 kommentarer og 1 løsning
Den mest simple løsning
Hej eksperter.
Jeg har gået i gang med et lille hobby projekt hvor jeg udvikler små class's i PHP(OOP) og MySQL, som jeg kan bruge i fremtiden.
Mit spørgsmål er sikkert indlysende for nogle, men lige nu kan jeg bare ikke tænke logisk. :P
Spørgsmålet er: Hvordan ser det mest simple venne system ud?
Jeg har tænk lidt, og fundet en masse forskellige måder det her kunne fungere. Jeg har lavet en system der fungere, meget af det virker bare overflødigt.
Forskellige måder jeg har tænk over:
1. (Den jeg bruger nu) Her bruger jeg en MySQL tabel (venner): |ID|int(11)|Nej| |user1|int(11)|Nej| |user2|int(11)|Nej| |date|datetime|Nej| |active|int(1)|Nej|
og bruger så en query der læser (user1 & user2) for at udskrive.
2. Implantere venne tabellen i bruger tabellen og putte en seperator imellem hver ven?
3. Så lang er jeg ikke kommet, måske har i en ide?
Det er ikke første gang jeg laver sådan en system og jeg synes bare det virker så bøvlet.
Din tabel 'venner' har et overflødigt felt, ID. Nu undrer du dig garanteret over hvorfor, det er overflødigt, men det er ret simpelt.
En person kan vel ikke være venner med en person mere end en gang - derfor vil du aldrig få to ens linier (hvad angår user1 og user2).
Man kan så diskutere optimering - ville user1 kunne fungere fint som et indekseret felt? Og ville det give mening? Ja, det ville det, men kun hvis 'vennerne' var venner med hinanden: +-------+-------+ | user1 | user 2| +-------+-------+ | 314 | 682 | | 682 | 314 | +-------+-------+
Det ville optimere tabellen - men så alligevel, du ville jo have dobbelt så mange rækker? Ja, tankerne er mange...
Hovedsagen er at det smarte system skal følge KISS konceptet (Keep It Short'n'Simple). Lappeløsninger vil gøre det svært at udvide dit system og du vil opleve at i takt med at du får bedre og bedre idéer, vil komplekse løsninger måske kun gøre det mere kompliceret at integrere ny funktionalitet. Medmindre du tænker OOP ind i det; måske noget med noget polymorfi? Hmm...
Ja, måske er den mest simple løsning alligevel ikke den smarteste...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.