Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Hjälp med relationer

Tråden skapades och har fått 5 svar. Det senaste inlägget skrevs .
1

Hej,

Jag försöker bygga ett enkelt fakturasystem för en båtklubb men det har visat sig svårare än vad jag hade tänkt mig.

Bakgrund:

Båtklubben har olika båtplatser men olik pris. Faktura för medlemsavgift skickas ut två gånger per år. En medlem kan ha flera båtplatser.
Varje båtplats har ett eluttag med mätare. Faktura för elförbrukning skickas ut en gång per kvartal.

Jag har lagt upp följande tabeller:

MELDEMSREGISTER
BÅTPLATER (anger medlem och antal av varje båtplatstyp)

medlems_id
båtplatstyp_1
båtplatstyp_2
båtplatstyp_3

PRODUKTER (priserna för de olika båtplatstyperna och kostnad kWh el)
ELAVLÄSNING (innehåller senaste elmätning för varje medlem)
FAKTURAREGISTER
ORDERRADER

Jag har fram tills nu följande relationer:

MEDLEMSREGISTER ----> medlems_id <------- FAKTURAREGISTER
FAKTURAREGISTER -----> faktura_id <------- ORDERRADER
MEDLEMSREGISTER ----> medlems_id <------- BÅTPLATSER
ORDERRADER ----> produkt_id <---------- PRODUKTER

Nu undrar jag vilka andra relationer jag behöver. Jag vill att en ny faktura skapas när jag lägger in en senaste elförbrukningen i ELAVLÄSNING. Jag önskar givetvis att inrapporteringen av elförbrukningen automatisk ska skapa en faktura med tillhörande orderrad (1 st)

Jag har funderat på att göra detta med ett script, ett script som aktiveras via en knapp. Måste jag ha relationer för att få ett script att fungera? Jag ser framför mig ett script som skapar en faktura i FAKTURAREGISTER samt en rad i ORDERRADER med information från ELAVLÄSNING, dock undrar jag om en relation är en förutsättning för att detta ska fungera?

Jag önskar också en lösning där jag skapar samtliga fakturor avseende medlemsavgift automatisk med hjälp av en knapp (script). Hur ska relationen mellan FAKTURAREGISTER och ORDERRADER se ut mot BÅTPLATSER för att uppnå detta. Lite samma frågeställning som ovan.

Kan jag lösa detta på annat sätt? Mest nyfiken på hur realtionerna bör se ut och hur detta kan lösas på enklaste sätt.

Det jag upplever skiljer detta från traditionella fakturasystem är att antalet produktenheter (typ av båtplats eller elförbrukning) är givet för varje kund och finns redan registrerad i olika tabeller (BÅTPLATSER, ELAVLÄSNING). Antal kWh eller antal båtplatser är inte något man väljer för varje gång man lägger till en orderrad i fakturan. Detta ska "hämtas" från respektive tabell.

Hoppas jag har lyckats förklara problemställning på ett förståligt sätt.

Jag arbetar i FM 9.

Tack för all hjälp!

Min spontana fundering är om du inte komplicerar saker i onödan. Varför inte betrakta både el och båtplats som ett slags produkter, och ha allt i samma produktregister? Som jag förstår det är det ju faktiskt frågan om en produkt (el) som har en enhet (kwh) samt ett pris, och samma sak för båtplatser.

Gör du på det sättet kan du slå ihop båtplatser, produkter och elavläsning till ett enda produktregister, där du har produkttyperna båtplats, el, produkt x, produkt y osv.

I så fall får du ett vanligt fakturasystem med kund(medlem) produkter, fakturor, fakturarader

Vill du av något skäl ha en relation mellan olika produkter så kan du ha en självrelation (spontant ser jag dock inte vad det tillför)

Tack för din input, det kan absolut vara så att jag komplicerar och det önskar jag inte. Ser dock inte hur kan kan koppla allt i samma PRODUKTREGISTER eller PRODUKTER som jag har valt att kalla det.

I min PRODUKTER har jag det som du föreslår:

produkt_id
produkt_pris (i kroner)
produkt_enhet (i t.ex. kwh)
produkt_beskrivning (text)

Det är bara det att varje medlem har olika antal av varje produkt, vilket jag lagrar i ELAVLÄSNING och BÅTPLATS

ELAVLÄSNINNG

avläsning_id
medlems_id
senaste_avläsning (kwh)
förra_avläsning (kwh)
datum_avläsning (datum)

BÅTPLATS

båtplats_id
medlems_id
båtplatstyp_1 (boolean)
båtplatstyp_2 (boolean)
båtplatstyp_3 (boolean)
båtplatstyp_x (boolean)

Detta ger en tabell som kan se ut:

båtplats_id - medlems_id - båtplatstyp_1 - båtplatstyp_2 - båtplatstyp_3
1 - 3 - 0 - 1 - 0
2 - 5 - 1 - 0 - 1

för samtliga 270 medlemmar....

Jag ska altså skapa en faktura (med ORDERRADER) som hämtar produktinfo och produktpris från PRODUKTER för att sedan hämta antalet (quantity) från antingen ELAVLÄSNING eller BÅTPLATSER. Enligt ditt förslag behöver jag ett produktregister som även anger antal (quantity) per medlem vilket inte vara så klokt.

En annan fundering är att jag inbland vill ha en elfaktura, ibland medlemsavgift. Detta innebär en relation till både BÅTPLATS och ELAVLÄSNING, dock inte samtidigt. Går det att göra en relation som på något sätt är variabel?

Jag kanske inte behöver någon relation alls, jah kan hantera allt i ett script? Går det att använda data mellan tabeller utan att det är en relation mellan, sköta allt i scriptet?

Synpunkter eller input?

Tja, jag bara säger hur jag skulle göra, och det är att abstrahera och generalisera. Om du gör en enda tabell för produkter så kan du ju enkelt välja om du endast vill inkludera endast el eller båtplatser, eller både och.

Jag köper absolut dina argument eftersom jag utgår ifrån att du kan FM mycket bättre än vad jag kan. Tror jag har har hittat en lösning enligt din strategi. Återkommer säkert med flera frågor ...

Jag tror du kan lära dig mycket genom att titta på denna färdiga lösning just för fakturor med mera:

FileMaker Pro 9 demo + Business Productivity Kit
http://www.filemaker.se/landing/smallbiz/

1
Bevaka tråden