Tappat allt med relationer

Tråden skapades och har fått 10 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Uppsala
  • 2008-07-16 05:36

Jag bygger en databas med kunder. Sedan är det säljare som har sitt ID nummer.
Då har jag skapat en fil som heter säljare och meningen är att säljaren ska skriva i sitt ID nummer och sedan fylls hans / hennes Namn och annan data i från säljare filen i kunddatabasen.

Men jag får fn inte relationerna att funka. En kickstart skulle hjälpa Som tex vilken typ av relationer sja jag använda?

(Jag har engelsk version av FM så ni kan svara på den svenska så får jag lista ut det )

Tack!

Version av Filemaker?

  • Medlem
  • Uppsala
  • 2008-07-16 20:01

Filmaker v9

I FileMaker 9 så skall du egentligen inte ha separata filer, du skall ha en fil med två tabeller i. Men självklart fungerar det även att ha separata filer, men det blir lite krångligare eftersom du måste lägga till en FileMaker datakälla.

En hel del framgår inte i din fråga, men här är några saker att tänka på.

  • De fält du relaterar till varandra måste vara av samma typ, har du ID_Säljare som numeriskt fält i filen/tabellen Säljare så måste samma fält ID_Säljare i Kunder också vara numeriskt.

  • Att döpa fält på det viset på båda sidor är väldans fiffigt och logiskt. I Säljare har du ID_Säljare numeriskt med automatiska data löpnummer. Så när man skapar en ny post så får den posten ett nytt nummer. I Kunder har du på samma sätt ID_Kund, numeriskt, löpnummer. I Kunder har du även ID_Säljare som numeriskt fält. Att låta namnet reflektera att det är ett ID-fält och från vilken tabell det hör till gör det snabbt och enkelt senare när systemet växer att relatera ihop saker till varann.

  • Jag har även ett system för att döpa relationer, formen är tabellen man står i - tabellen man tittar mot - fältet man använder, så alltså skulle en relation mellan Kunder och Säljare via ID_Säljare hetaKunder_Säljare_ID_Säljare. Men jag har inte det med i detta exempel. När antalet register, tabeller, layouter växer så ser man i namnet på relationen vilken man skall ha. Skall du lägga in relaterade fält, portaler mm i Kunder och du ser en relation som inleds med ordet Kunder, så vet du ju att det är den du skall ha. Underlättar verkligen i långa loppet.

Det du vill göra är dock inte så svårt, du behöver fixa till dina två register så att de ser ut som i bilden nedan och innehåller alla fält (utom det sista Säljare_Namn_Länkdata).

Du behöver under Arkiv > Hantera databas > Relationer lägga till en datakälla som är registret säljare. Sedan relatera ihop dessa på ID_Säljare.

När de är relaterade så skapar du det sista fältet, ett textfält med namnet Säljare_Namn_Länkdata. Du ställer in under fliken automatiska data att det skall vara länkdata, väljer relationen och lite andra inställningar i bilden. När du sedan skriver säljare 1 på kunden så kommer namnet på den säljaren att kopieras över till Kunder.

Lycka till!

  • Medlem
  • Uppsala
  • 2008-07-18 02:39

Tack,
Det tog ett tag men sen fick jag klur på det Nu undrar jag om man måste göra annorlunda om man ska ha flera uppgifter insatta, som tex. gata, telefon osv. Gör man på ett annat sätt då eller hankar man sig fram på samma sätt?

Tänk på att lägga lite tid på att skriva din fråga och försöka beskriva vad du vill göra, annars får du fel svar och kan också missa riktigt bra svar som jag kanske också har på lut.

Det finns regler för att bygga databaser, den första och viktigaste regeln är att man inte skall lagra samma data två gånger. Ingen regel saknar dock undantag: Säg tex att du bygger en lösning som innehåller artiklar med priser, order, orderrader och fakturor. Säg sedan att du ändrar ett pris på en artikel, vill du då att alla redan skapade ordrar och fakturor du redan skickat skall få det nya priset?

En annan regel handlar om dataintegritet, man skall inte bygga ett system så att data som skall "ligga still" inte gör det. Exempel: Om priserna på gamla ordrar också ändras när man ändrar priset så bryter man mot dataintegritetsregeln. Detsamma gäller om man raderar en artikel och därmed så försvinner artikelnamnet på alla de fakturorna.

Så man kan alltså inte alltid och hela tiden kopiera data mellan olika saker (vilket länkdata alltså gör, det kopierar ett aktuellt värde och lagrar det någon annanstans, som tex säljarens namn).

Man kan heller inte göra tvärtom och alltid visa relaterad information, för om man bara har relaterad information så bryter man mot reglerna för dataintegritet.

Flera exempel är tex kunders uppgifter på ordrar. En kunds adress och telefonnummer fungerar bra som relaterade data.

Tänk också på att ett forumtråd inte är rätta stället att lära sig FileMaker från början, det låter lite som att du inte har tittat i tex manualen och hjälpen och studerat de exempeldatabaser som medföljer?

För att tex visa relaterade data (kunders uppgifter på en order), så har du förstås en relation mellan order och kunder på samma sätt som ovan. Sedan lägger du ut ett fält i layouten. När du väljer fältet så väljer du relationen först, sedan kan du välja vilket fält du vill. När du ändrar i fältet så ändrar du egentligen i den riktiga tabellen. Så är det inte med länkdata, de är finns ju på två ställen.

Senast redigerat 2008-07-18 16:32

Om du i din nästa fråga berättar att du håller på att bygga en lösning för kunder, fakturering mm, så kanske jag skulle kunna tipsa om att tanka hem en färdig gratis lösning för just det:

Business Productivity Kit för FileMaker Pro 9

  • Medlem
  • Uppsala
  • 2008-07-18 15:05

Tack för tipsen,
Jag ska förklara lite mer. Datan om tex. säljaren och hans Namn kanske kommer att användas flera gånger. Lite exempel kan vara:

1. Säljaren jobbar för ägaren och ägaren vill ha försäljningsstatistik, lönebesked osv. Då måste ju lönebeskedet plocka in hans adress, personnr., osv.

2. Ett annat senario är at ägaren till detta bolag som säljer produkter lägger ut en del av försäljningen på ett annat företag. Då ska det i Säljarens kort stå Företagsnam mm. för att ägaren ska kunna skriva ut en faktura, som kommer att bli en till del utav databasen.

Därav frågan om flera relationer. Ett färdigt system lämpar sig tyvärr inte då detta är ganska skräddarsytt trots att databasen inte är så avancerad.

Ps. Jag jorde som du sa och använder nu inte externa filer, utan nya "Tables" bara. Ds.

Ok, det är kanske det här du inte förstår med relationer? Om du har order, fakturor, försäljningsstatistik, säljare, lönebesked, företag, kunder osv, så säger ju regel 1 att du bara skall lagra informationen om säljaren EN gång, dvs i säljardatabasen. All säljarinformation i övriga tabeller skall bygga på en relation mellan tabellen och säljar-tabellen. Relationsnyckeln skall vara numret på säljaren.

Varför? Säg att säljaren byter adress och telefonnummer tex, skall du då ha dennes adress, epost, telefonnummer i alla dessa tabeller och i en massa olika poster i dessa tabeller och behöva söka fram och uppdatera alla dessa tabeller då?:

  • Order

  • Fakturor

  • Försäljningsstatisik

  • Lönebesked

  • Företag

  • Kunder

Det är just det man skall undvika med relationsdatabaser. Du behöver ju bara "märka" dina poster med säljarens nummer (en siffra i ett fält), resten av data om säljaren kan ju hämtas från säljartabellen via relationen och visas i layouten via just relaterade fält.

Multiplicera ovanstående miss i databasdesign där man inte använder relationer på rätt sätt och lagrar samma data om och om igen för 100 saker till som gäller kunden, artikeln, prisgrupp osv osv, börjar du kanske förstå vad nyttan är med relationer?

Sedan var ju poängen med att länka till det färdiga systemet att du skulle ladda hem det och prova det, det var därför jag tipsade om det. Det färdiga systemet kan även:

1. Lära dig mycket om relationer, manus, layouter mm. Har du FileMaker Advanced kan du även kopiera grejer från det systemet och använda i ditt eget.

2. Anpassas fritt. Du kan även bygga om och anpassa den "färdiga" lösningen som inte är låst på något sätt. Du bör alltså komma betydligt längre på kortare tid genom att utgå från något halvfabrikat och anpassa det lite grann till just dina behov. Vilket är nästan hela poängen med att ha FIleMaker Pro. Varför bygga tex kunder, artiklar, order, fakturering osv när det redan är klart?

Senast redigerat 2008-07-19 11:12

Jag är imponerad av ditt engagemang Taz!

Du är en verklig eldsjäl här för alla vi som gillar filemaker..

/Jenny

  • Medlem
  • Uppsala
  • 2008-07-21 11:59

Ja tack för hjälpen Taz. Men nu har jag skaffat en Lynda tutorial på 10 timmar och ska plugga lite

1
Bevaka tråden