webForumDet fria alternativet

Brainstorming - bollplank, en idé jag har...??

Databaser & SQL

8 svar · 465 visningar · startad av Eclipse

Medlem sedan juli 20003 825 inlägg
Frågan#1

Jag har en idé om en hemsida för turism, med turistaktiviterter. Min tanke är att göra som en agenda... kanske baserad på datum. Ja, det är inget svårt!

Nu tänker jag så här, det finns ett visst antal aktiviteter denna sommaren. Konserter, happenings i parken, massa annat.

De flesta av dessa aktiviteter återkommer år till år, fast kanske inte på samma dag eller samma datum.

Exempel: en medeltidsmarknad i parken. När jag klickar på den för att läsa mer om den marknaden så ser jag samtidigt bilder och text från marknaden från tidigare år. Marknaden är andra helgen i maj, vilket per datum infaller olika varje år. Första året kanske marknaden var en dag, andra två dagar och tredje året kanske bara en dag igen.

Bara för att illustrera upplägget.

Nu undrar jag hur man ska tänka för att få till ett så pass flexibelt upplägg som passar i dessa situationer. Det är svårt! En kul utmaning!

Medlem sedan juni 20008 205 inlägg
#2

Hm...

En händelse kan ses som en instansiering av ett evenemang på en viss tid på en viss plats av en eller flera arrangörer. T.ex. ordnar arrangören Rockparty händelsen Hultsfredsfestivalen -07 (ett av flera evenemang under namnet Hultsfredfestivalen) på Hultsfreds festivalområde (ja... eller vad det nu kan tänkas heta), under 14-16 juni. Låter inte det rätt funkis? Naturligtvis får man manuellt lägga in varje händelse om de har konstiga datumregler som typ "första veckan på sommarlovet", men det är det inget konstigt med.

Medlem sedan juli 20003 825 inlägg
#3

Ja... jo....

Som programmerare känner jag att jag vill se en viss struktur. Exemplet ovan är ett bra exempel. Rockparty har flera händelser under året, Festivalen är en av dom men som innefaller på olika dagar (datummässigt) varje år.

Man kan givetvis koppla evenemang till varandra hej vilt... Men det var just det jag tänkte man kanske kunde undvika genom bra planering av "projektet". Det är lite här jag inte riktigt vet i vilken ända jag ska börja att bita i, så att säga...

Medlem sedan juni 20008 205 inlägg
#4

Eclipse skrev:

Man kan givetvis koppla evenemang till varandra hej vilt...

Hur menar du nu? Visst kan man lägga in att Federline Records arrangerar händelsen Woodstock -69 under juli 1349 som ett evenemang av typen "Månlandning" på Grand Garbo's i Sundbyberg, men gör man det är det inte fel på datamodellen, utan på hjärnan hos den som lägger in det (och ev. på användargränssnittet som förvirrar).

Medlem sedan juli 20003 825 inlägg
#5

Nej, nej! Det där är kvalificerat flummeri! :-)

Kanske du inte läste eller förstod det första inlägget? Kanske skriver jag otydligt?

Låt oss ta medeltidsmarknaden ovan som ett exempel. När man tittar på årets marknad och läser mer i detalj om det så kan man samtidigt på ett lätt och smidigt sätt se att det har varit marknader tre år tidigare och man kan se bilder och text från dessa marknader.

***
Hmmm... kanske lite som på webbplatsen di.se??

http://di.se/Nyheter/

Nyheten om Ericsson... sen står: "Läs också" och ytterligare artiklar är kopplade till den första. Detta måste vara någon typ av (skapligt avancerad) manuell handpåläggning, för inte kan man automatiskt få dessa att relatera till just denna nyhet.

Jag menar, det är inte allt DI skriver om Ericsson är relevant, bara det som skrivs om Ericsson och samtidigt rör bonusprogrammet. (I just det exempel jag nu ger.)

ericsson-exempel.jpg
Medlem sedan juli 20003 825 inlägg
#6

Jag har faktiskt ett förslag som kanske kan fungera! Delvis baserat på ovanstående.
Vi har ett evenemang den 15 juni, 2007. I denna vy, ges möjligheten att koppla tidigare evenemang vid samma tid tidigare år och sen +- 2 veckor. (Som ett förslag)

Koppla evenemang
[x] 2004-06-09 Evenemang
[x] 2004-06-17 Evenemang
[x] 2005-06-04 Evenemang
[x] 2005-06-16 Evenemang
[x] 2006-06-09 Evenemang
[x] 2006-06-10 Evenemang

Detta är en halvautomatisk lösning som kräver viss manuell handpåläggning men man slipper leta igenom 500 evenemang där alla utom tre är helt irrelevanta. I denna varianten är det bara eventuellt andra evenemang i samma tids spann som är irrelevanta och det är avsevärt många färre!!

Nu kan man koppla evenemang i ett överskådligt gränssnitt med datum, men det är inte så noga att det är exakt samma datum som tidigare år. Det blir bra! :-)

Jag tänker, det är nog så DI's gränssnitt fungerar. Dom skriver en artikel om Ericsson och sen listas alla artiklar DI skrivit om Ericsson den senaste tiden. Journalisten (eller vem det nu är) markerar relevanta artiklar som rör det aktuella ämnet.

Medlem sedan juni 20008 205 inlägg
#7

Nu är du mer inne på gränssnittsfrågor än datamodellsfrågor, vilket jag antog det rörde sig om eftersom vi är i SQL-forumet :) men visst, så kan man göra. Finns en nackdel med att knyta olika händelser direkt till varann, och det är att det blir jobbigare att få fram transitiva relationer (om du knyter A till B, B till C, är då A knutet till C?), men det kan man iofs jobba sig fram till. Om det ens behövs, vilket inte nödvändigtvis är fallet när man jobbar med en kalender.

Hursom, i den modell jag föreslog skulle exempelvis "Hultsfred 2005", "Hultsfred 2006" och "Hultsfred 2007" alla vara händelser som var knutna till det återkommande arrangemanget "Hultsfredsfestivalen". När man sen visar händelsen "Hultsfred 2007" visar man även länkar till alla händelser som tillhör samma återkommande arrangemang, t.ex. "Hultsfred 2005" och "Hultsfred 2006". Väljer man bland arrangemang blir det antagligen en betydligt mindre mängd grejer att välja mellan än om man väljer mellan alla händelser. Men det går förstås att tillämpa datumprincipen du använde i ditt exempel på den här modellen också.

Medlem sedan juli 20003 825 inlägg
#8

Jag vet att detta inte är en specifik SQL-fråga, men i rubriken " Brainstorming - bollplank, en idé jag har...??" gav jag en antydan om att det är ett ospecificerat problem av mer generell karraktär.

Ibland går gränssnitt och en vanlig SQL fråga hand i hand. Dom kompletterar varandra.

Jag förstår din idé. Jag använder samma upplägg i andra sammanhang och jag tycker upplägget är extremt omständigt, rörigt och bökigt att ha att göra med. Men det är helt självförvållat. Det är givetvis en fråga om val av gränssnitt. Ett klumpigt gränssnitt blir givetvis jobbigt att arbeta med.

***
När jag tänker, vilket faktiskt kan hända, tror jag att min datumvariant passar bättre i just detta fallet. I mitt exempel rör det sig om en hel stad med till viss del ospecificerade evenemang. Dvs. man vet inte vem avsändaren är. (Arrangören)

Till exempel, den 5 maj 2007 är det "Mulledagen", i parken. Mulle fyller 50 år i år och det firas med balonger och varm korv. Jag är osäker på vem arrangören är och i detta sammanhanget är det inte så viktigt.

Hade det där emot varit tal om ett företag, en sponsor, för varje evenemang tror jag att din lösning skulle vara att föredra.

Med din variant får man skriva in "Mulleträff i parken" först, sen "Mulleträff i parken 2007" och ett specifikt datum. Man måste alltså skriva in samma evenemang två gånger utan att veta om det kommer åter nästa år.

Med min variant skriver man in "Mulleträff i parken" den 5 maj. Kanske fanns det Mulleträff även förra året och då kommer det upp på sidan och man kopplar (markerar) den händelsen till detta årets evenemang.

Det är en viss skillnad i struktur (databasdesign) på evenemang för Rockparty och ospecificerade evenemang som sker i en turiststad modell mindre.

***
Du skriver: "om du knyter A till B, B till C, är då A knutet till C?"

- Nej. Det finns ingen poäng eller behov av den typen av kopplingar. Den typen av kopplingar är helt överflödig och enbart extra arbete utan relevant eller användbart resultat.

Medlem sedan juni 20008 205 inlägg
#9

Eclipse skrev:

När jag tänker, vilket faktiskt kan hända, tror jag att min datumvariant passar bättre i just detta fallet. I mitt exempel rör det sig om en hel stad med till viss del ospecificerade evenemang. Dvs. man vet inte vem avsändaren är. (Arrangören)

Till exempel, den 5 maj 2007 är det "Mulledagen", i parken. Mulle fyller 50 år i år och det firas med balonger och varm korv. Jag är osäker på vem arrangören är och i detta sammanhanget är det inte så viktigt.

Bara för att man kan ha arrangör etc. på händelser betyder det inte att man måste. Null är ett alldeles utmärkt värde :) Men din variant har ju en enklare datamodell vilket såklart är att föredra om man inte behöver mer.

262 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)