phredMedlem sedan nov. 2005314 inlägg Hej, jag lägger denna post här för jag tror att det i slutändan kommer att resultera i en sql-fråga / databasstruktur.
Jag sov, jag vaknade, jag fick en idé.
Tänk er ett artikelsystem, enkelt som satan, man kan skriva rubrik och själva artikeltexten. Sedan kommer jag som läsare och vill skriva en annan "variant" av samma artikel då klickar jag på den knappen och får skriva en helt ny artikel.
Men när jag då sparar den så ska det på något sätt i databasen sparas ett värde så att när jag går in på någon av dessa artiklar så står det på sidan "andra versioner av..." och så en länk.
Det känns ju som att det inte är några problem, men jag vill ju att en tredje person ska kunna välja "skriv en annan version" på den andra artikeln, sen ska en fjärde person kunna skriva en annan version på originalartikeln. Men alla dessa ska hamna under "andra versioner av" när man tittar på någon av dessa.
Min första tanke var detta:
tbl_artiklar
ID
RUBRIK
ARTIKELTEXT
----
tbl_varienter
ID
PARENT_ID
ARTIKEL_ID
----
Men jag vet inte riktigt, jag har svårt att se hur jag ska få ut rätt resultat "enkelt" ? Har bollat detta fram och tillbaka utan att egentligen komma på någon bra struktur.
Anyone?
SPiNMedlem sedan mars 20007 896 inlägg Du borde enbart ha en tabell, med ett fk-fält (parent) till pk-fältet (id). Om artikeln är en originalartikel är parent tom, annars innehåller den en pekare till den reviderade artikeln. På så sätt kan du bygga hur långa strukturer som helst, när datalagringen sker rekursivt.
phredMedlem sedan nov. 2005314 inlägg hmm ok. Då tänker jag heeelt fel med andra ord, fick för mig att jag skulle bli begränsad till ett resultat om jag gjorde så.
Alltså om jag är på artikel med id 1 så kollar jag om det finns några artiklar som har parentid 1 och då skrivs dem ut som liknande artiklar, men hur beter jag mig sen då ? För alla dom kan ju vara parent till andra artiklar ?
Kanske irrar jag till det för mig själv, förklara gärna ;)
phred skrev:
hmm ok. Då tänker jag heeelt fel med andra ord, fick för mig att jag skulle bli begränsad till ett resultat om jag gjorde så.
Alltså om jag är på artikel med id 1 så kollar jag om det finns några artiklar som har parentid 1 och då skrivs dem ut som liknande artiklar, men hur beter jag mig sen då ? För alla dom kan ju vara parent till andra artiklar ?
Kanske irrar jag till det för mig själv, förklara gärna ;)
ARTIKELID | ARITIKELPARENTID |ARTIKEL | RUBRIK
1 | | texten | rubriken <-- orginal
2 | 1 | texten | rubriken <-- version av artikel 1
3 | 2 | texten | rubriken <-- version av artikel 2
4 | 1 | texten | rubriken <-- version av artikel 1
Sen får man då gå rekursivt igenom tabellen för att se vilka artiklar som är version av vilken artikel.