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


databas Design... hjälp.

Postades av 2005-03-22 11:09:35 - Hobbe Husman, i forum databaser, Tråden har 7 Kommentarer och lästs av 838 personer

Hej, Jag skulle behöva lite hjälp elelr förslag för design av en databas jag ska börja med.

Den ska innehålla detta:

Ett Projekt består utav flera Funktionsområden (okänt antal). Varje funktionsområde har en (kanske fler) ansvariga.

Varje anställd kan ingå i flera funktionsområden (FO) där de även kan vara ansvariga.

Hur lägger jag upp detta på snyggast sätt?

Just nu har jag bla:

Employee.ID, .Namn, .efternamn, .Email
Project.ID, Namn, FO1resp, FO2resp, FO3resp...osv.
FO.ID , .Namn

som ni märker är detta ingen snygg lösning eftersom man inte vet antalet FOn... + att varje antsälld ska kunna vara delaktig i flera FOn.. hur löser jag detta smidigt så att jag kan göra enkla och snygga querys senare?

Alla tips/förslag är välkomna..


Svara

Sv: databas Design... hjälp.

Postades av 2005-03-22 13:08:58 - Marcus Gus

En tabell projekt
En tabell Funktionsområde (Fo)
En tabell FOMembers med ett booleanskt fält som heter "responsible", "manager" eller liknande
En tabell Empolyee

Projekt en till många relation mot FO
Fo en till många relation mot FOMembers
Empolyee en till många relation mot FOMembers

Vem(vilka) som är ansvarig för FO styrs av flaggan i FOMembers, de so inte har flaggan satta på sig är "bara" medlemmar.


Finns fler sätt att lösa det, detta var det första jag kom på.


Svara

Sv: databas Design... hjälp.

Postades av 2005-03-22 13:14:58 - Kajsa Linderborg

Hej!

Jag kanske har missförstått dig, men det här kanske är en lösning.

Skapa en tabell för funktionsområden och en kopplingstabell mellan personer och funktionsområden (eftersom det är ett "många till många förhållande"). På kopplingstabellen kan du lägga ett fält som markerar om personen är ansvarig.

På samma sätt verkar det finnas ett många till mångaförhållande mellan funktionsområden och projekt. Kopplingen mellan projekt, funktionsområde och person kräver också en tabell.

När du sedan vill veta personer som är knutna till vilket funktionsområden för varje projekt kanske det kan se ut så här:

SELECT Proj.Projekt, FO.Funktionsomrade, P.Namn, ProjFOP.HarAnsvar
FROM dbo.ProjektFunktionsomrade ProjFOP
JOIN dbo.Projekt Proj ON Proj.ProjektID = ProjFOP.ProjektID
JOIN dbo.Funktionsomrade FO ON ProjFOP.FunktionsomradeID = FO.FunktionsomradeID
JOIN dbo.Person P ON ProjFOP.PersonID = P.PersonID
ORDER BY FO.Proj.Projekt, FO.Funktionsomrade, P.Namn

Hoppas att detta var till någon hjälp.

/Kajsa


Svara

Sv: databas Design... hjälp.

Postades av 2005-03-23 10:23:00 - Hobbe Husman

Tack så mkt för era svar...
Ur era svar kom jag fram till ngt som liknar detta:

http://hrmintranet.optinet.se/relationer2.jpg

(PT2-PT7 samt SOP innehåller slutdatum(deadline) för ollika faser i projektet. Antalet kan Variera. Dessa kanske man borde lägga i en egen tabell?)
1PrjectArea.resp är alltså ansvarig för det aktuella funktionsområdet i ett specifikt projekt.

<B>
Fråga1: Tror ni att det kan fungera med den design jag valt??
Fråga2: Hur ser SQL-satsen ut för att få fram tex alla ansvariga? eller lista en anställds funktionsområden?
</B>

Detta är första gången jag jobbar med sånt här så det är bra att fråga innan så jag inte hamnar i en massa fallgropar längre fram.

OBS! Tydligen kan inte ett funktionsOmråde (Area) ha fler än en Ansvarig, så det underlättar det hela lite.

Tack på förhand...
/H


Svara

Sv:databas Design... hjälp.

Postades av 2005-03-23 10:25:08 - Hobbe Husman


Kajsa, Ditt svar var mkt bra och utförligt. Gillade speciellt SQL-frågan du hade med, för det hade blivit min nästa fråga..:)

Men jag var inte med till 100%, Är det ngt sånthär du menar??
• Proj
o ProjektID
o Projekt
• FO
o FunktionsomradeID
o Funktionsomrade
• P
o PersonID
o Namn

--- Kopplingstabeller ---
• ProjFoP
o FunktionsomradeID
o ProjektID
o HarAnsvar
• dbo
o Projekt
o ProjektFunktionsomrade
o Person

Jag är med på det mesta utom just kopplingstabellen "dbo"... hur kommer den in i bilden och vad fyller den för funktion?
Annars verkar min och din design vara snarlika...

MvH/H


Svara

Sv: databas Design... hjälp.

Postades av 2005-03-23 11:08:26 - Marcus Gus

Det du har angett ovan är prexis så som jag har försökt beskriva, bortsett från dbo. Kajsa har gjort antagandet att ett funktionsområde kan ingå i flera projekt, gäller inte det antagandet behöver du heller inte ha med den tabellen utan låter projekt & funktionsområde ha en "en till många"-relation

Edit:

ProjFoP
o FunktionsomradeID
o ProjektID
o HarAnsvar

Skall inte se ut så utan så här

FoP
o FunktionsomradeID
o PersonID
o HarAnsvar

Dett gäller dock med följande antagande:
* Ett Fo ingår ENDAST i ETT projekt, ett projekt kan bestå av flera Fo
* En person kan ingå i flera Fo och i vissa av dem ha "rollen" HaAnsvar


För att få ut vilka personer som ingår i ett projekt:
select distinct(p.personid) from p, FO, proj
where p.personid = FO.Personid
and FO.ProjektID = proj.ProjektID
and proj.ProjektID = 1234567890

Detta kommer att ge de personer som ingår i projektet. Tänk på att en person kan ingå i flera Fo, därav distinct.

Edit2:
<b> Hur ser SQL-satsen ut för att få fram tex alla ansvariga? eller lista en anställds funktionsområden? </b>


Alla ansvarig OAVSETT vilken Fo de tillhör, en person kan vara ansvarig i flera Fo men visas bara en gång
select distinct(p.personid) from p, FO
where p.personid = FO.Personid
and HarAnsvar = 1 (eller True som det skall vara om det är ett boolskt fält)

Visar alla ansvarig och deras Fo, en person visas flera gånger men då kopplad till fo
select p.personid, fo.FunktionsomradeID from p, FO
where p.personid = FO.Personid
and HarAnsvar = 1 (eller True som det skall vara om det är ett boolskt fält)
order by fo.FunktionsomradeID


Visar de Fo som en person tillhör
select FunktionsomradeID, Funktionsomrade from p, FO
where p.personid = FO.Personid
AND p.personi = 1234567890


Svara

Sv:databas Design... hjälp.

Postades av 2005-03-23 13:13:15 - Hobbe Husman

Ahhhhh. nu börjar saker o ting klarna här... Tack återigen Marcus..
Det som glädje mig mest var det att du inte använt "Left/RIGHT JOIN" och UNIONS i dina statements..
Jag har läst på lite om dem, men får inget grepp om hur o var o när man ska använda dem. Så jag är nöjd om jag klarar mig utan dem.

På vilket sätt är de bra och när ska man använda dem eg?


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

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 889
27 965
271 778
565
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