Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Design av databas

Postades av 2004-11-02 11:17:24 - Mattias Vartiainen, i forum databaser, Tråden har 12 Kommentarer och lästs av 902 personer

Sitter och klurar lite på design av en databas som ska innehålla försäkringar. Problemet är att det är väldigt mycket data (och då menar jag mycket) som ska in och då undrar jag vad ni tycker är bästa sättet att gå tillväga.

En försäkring har ett ID (F_ID), försäkringstagare (pno), premie och lite annat smått o gott

Försäkring
-----
F_ID
Premie
pno
...

En försäkring kan vara av en viss typ och typerna har till stor del likadana fält. Därtill kan man välja olika tillägg, som också har gemensamma fält till viss del. Tilläggen kopplar jag till en försäkring (FID).

Tillägg
-----
F_ID
T_ID
Premie
a
b
c
...

Nu är ju alternativet att ha bara en tabell för alla tillägg och därmed få massor av tomma fält. Är det bättre att skapa en tabell för varje typ av tillägg då? Eller kanske ha en gemensam tabell för de gemensamma fälten och därtill koppla olika tabeller för olika typer med unika fält?


Försäkring
-----
F_ID

Tillägg
-----
F_ID
T_ID
Premie

Tillägg_1
-----
T_ID
a

Tillägg_2
-----
T_ID
b

Hur jag än gör så känns det inte 100% bra..


Svara

Sv: Design av databas

Postades av 2004-11-02 11:36:21 - Martin Adrian

Om tilläggen variera över tiden (nya kommer till och andra försvinner) blir det snabbt ohållbart att ha alla tilläggen i samma tabell. Tycker ditt senare förslag verkar bäst men jag förstår inte riktigt vad du menar med tillägg_1 och tillägg_2. Behöver du olika tabeller för olika tillägg?


Svara

Sv: Design av databas

Postades av 2004-11-02 11:51:16 - Mattias Vartiainen

Eftersom det finns olika tillägg med olika innehåll, så tänkte jag att man kunde lägga specifik data för just Tillägg 1 i en tabell, och data för Tillägg 2 i en annan tabell.

Det kanske är 20 fält för varje tillägg varav 5-10 fält är likadana. Sen är det runt 5-6 olika tillägg. Så det blir många olika fält i tabellen om man ska spara alla tillägg i en tabell.

Så här kan det ex se ut:

Tillägg1
a, b, c, d

Tillägg2
b,c

Tillägg3
c,d,e,f,g,h


Det kan bli rätt många försäkringar, så ur prestandasynpunkt är det väl bäst att ha så få tabeller som möjligt med något index i varje? Försäkring i en tabell och alla tillägg i en tabell. Men det finns väl någon gräns för hur mycket data man kan lagra i en rad i en tabell?


Svara

Sv: Design av databas

Postades av 2004-11-02 22:07:34 - Per Karlsson

Det stora problemet med att ha olika tabeller för olika tillägg är att du inte kan skapa relationer (foreign keys) mellan tabellerna.

Vad sägs om att ha endast en tabell för tilläggen, med en extra kolumn som anger typ av tillägg.
Varje försäkring kan då att ha flera rader i tilläggstabellen, och det blir en snygg datamodell, utan tomma fält. En kopplingstabell anger då vilka tillägg en försäkring har.


exempel:

Försäkring
-----
F_ID
Premie
pno
...

FörsäkringsTillägg
----
F_ID
T_ID

Tillägg
----
T_ID
Tilläggstyp
...


Svara

Sv: Design av databas

Postades av 2004-11-03 09:24:04 - Johan Granfeldt

Det är väl just en massa tomma fält han får i tilläggstabellen med den lösningen i och med att de har så få fält gemensamma.

En tredje variant vore att ha separata tabeller för tilläggen och referera till försäkringen i dessa tabeller. Då kan du ha relationer mellan tabellerna samtidigt som du undviker en massa tomma fält.

Försäkring
-----------
F_ID (PK)
...
...


Tillägg1
---------
T1_ID (PK)
F_ID (FK)
...

Tillägg2
---------
T2_ID (PK)
F_ID (FK)
...


//J


Svara

Sv: Design av databas

Postades av 2004-11-03 10:00:23 - Patrik Dahlén

Att ha separata tabeller för tilläggen gör att lösningen inte blir särskilt skalbar. Tänk om det dyker upp ett nytt tillägg? Då ska man skapa en ny tabell och sen lägga till och ändra i databasanropen.

Lägg istället till ett par tabeller till Pers förslag ovan.

Vad vi har är:

- Försäkring
-- Kan ha 1 eller flera tillägg
--- F_ID, premie, pno, ...

- Tillägg
-- Kan ha 1 eller flera fält
--- T_ID, benämning

- Fält
-- Vissa fält finns på flera tillägg
--- F_ID, benämning, ...

Om vi skapar dessa 3 tabeller och sedan lägger till 2 stycken relationstabeller( försäkring-tillägg och tillägg-fält) så kan vi göra följande väldigt enkelt:

1. Ändra vilka tillägg en försäkring ska ha
2. Ändra vilka fält ett tillägg ska ha
3. Lägga till nya tillägg
4. Lägga till nya fält

Då har du en normaliserad och skalbar lösning.


Svara

Sv: Design av databas

Postades av 2004-11-03 10:11:22 - Martin Adrian

>Det kan bli rätt många försäkringar, så ur prestandasynpunkt är det väl bäst att ha så få tabeller som
>möjligt med något index i varje?

Är det verkligen så. Rent intuitivt skulle jag säga att det är tvärtom. Många tabeller med 1-n relationer ger bättre prestanda.


Svara

Sv: Design av databas

Postades av 2004-11-03 10:27:20 - Magnus Gladh

Visst kan du få bättre prestanda med många relationstabeller, där du har splittat upp datamängden på flera tabeller istället för 1. Dock så riskerar du att få många Joins och detta slöar ner databasen mer än vad det gör att ha mycket data i en tabell.

Jag skulle nog påstå tvärtom, att om man är ute efter rå prestanda så bryter man ofta mot normaliseringsreglen och dubbellagrar information för att slippa göra extra beräkningar och joins, detta speedar up lite. Ordentliga index är dock nycklen till hastighet.

- M


Svara

Sv: Design av databas

Postades av 2004-11-03 11:17:57 - Johan Granfeldt

Jag håller med om att Patiks design är både mer elegant och mer flexibel. Dock så skulle jag vilja påstå att den blir en aning knepig att arbeta med i t ex beräkningar och rapporter. Det blir ju inte lika enkelt som att referera till ett fält direkt => extra felkälla. Min bild av försäkringsbranchen är att den är ruggit beräkningsintensiv och då kan det bli opraktiskt att om det är för normaliserat.

Skulle vara intressant och veta vad som menas med väldigt mycket försäkringar. Rör det sig om 100.000, 1.000.000 eller fler?


Svara

Sv: Design av databas

Postades av 2004-11-03 11:22:24 - Patrik Dahlén

Man kan ju alltid lägga en View ovanpå mina tabeller att arbeta mot.


Svara

Sv: Design av databas

Postades av 2004-11-03 11:33:31 - Johan Granfeldt

Om jag inte är helt ute och cyklar så blir det än rätt otrevlig vy i och med att du får joina in tabellen med alla fält x antal gånger?



Svara

Sv: Design av databas

Postades av 2004-11-03 13:07:23 - Mattias Vartiainen

"Jag håller med om att Patiks design är både mer elegant och mer flexibel."
Ja det känns ju mer flexibelt iaf. Får kolla lite närmare på det.

"Min bild av försäkringsbranchen är att den är ruggit beräkningsintensiv"
I det här fallet ska försäkringar endast sparas och presenteras, premie och sånt är redan beräknat.

Många försäkringar är ju väldigt subjektivt, var väl jag som uttryckte mig otydligt. Vid närmare koll så blir det inte så hemskans många försäkringar, ett tak på 10.000 kanske. Fast man vet inte, det kan ju ändras i framtiden.


Svara

Sv: Design av databas

Postades av 2004-11-03 13:28:50 - Mattias Vartiainen

Patrik, jag tror att jag är med på hur du menar. Fast med de fält som ett tillägg har så menar jag t.ex.

Duedate, ett datum
Årsinkomst, en float

Hur/var är det tänkt att spara värdet för ett fält i så fall?! Att koppla vissa fält till ett visst tillägg är ju inga problem. Men ett fält kan ju vara av olika datatyp. Eller missade jag något?


Svara

Nyligen

  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 972
27 965
271 783
3 677
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies