Avatar billede eco2001 Nybegynder
03. februar 2004 - 10:40 Der er 19 kommentarer og
3 løsninger

Underkatagorier til database

Hej,

Jeg vil lave en base over nogle virksomheder, hvor nogle af virksomhederne er koncernvirksomhed/hovedsæde, mens andre er filialer/tilknyttede virksomheder. Jeg vil således gerne have at det kan lade sig gøre at knytte virksomhederne under samme koncernnummer sammen - men at grundinfo fra selve koncernvirksomheden figurerer på under-virksomhederne:

fx.:
1. 1. Hovedvirks1. (grunddata1)
  2. undervirksomhed1 (kopieret grunddata1)
  3. undervirksomhed2 (kopieret grunddata1)
  4. undervirksomhed3 (kopieret grunddata1)
2. 5. Hovedvirks2. (grunddata2)
  6. undervirksomhed4 (kopieret grunddata2)
  7. undervirksomhed5 (kopieret grunddata2)
  8. undervirksomhed6 (kopieret grunddata2)

Håber det er forståeligt nok :)

Mvh.
Eco
03. februar 2004 - 10:46 #1
Avatar billede hnteknik Novice
03. februar 2004 - 10:47 #2
HM - det laver du da med relationer. Jeg har lavet nogle stykker i tidens løb.

udnerafd. har et KOncernID tilknyttet
og ikke mindst et moderid, så du kan have en hierarkisk firmastruktur

Henrik
03. februar 2004 - 10:49 #3
Forklaring:

Normalt har man netop en koncern-tabel og en afdelings/firma-tabel.
Koncernen gemmer kun på oplysninger som navn, web-adresse og måske olysninger om hovedsæde.
I den anden tabel gemme man alle firmaerne, som vha KoncernID fortæller hvilken koncern de hører til.
Grunddata (adresse m.m.) skal altså IKKE ligge på koncern-niveau.

/Thomas
Avatar billede eco2001 Nybegynder
03. februar 2004 - 10:53 #4
Jeg har valgt at give et ja/nej felt til valg af om det er "moderselskab"... Derfor, hvis det er et ja felt skal man kunne indtaste nogle grunddata, mens der ved nej - bør vises grunddata fra det moderselskab virksomheden tilhører (dvs. samme koncernr.)
Avatar billede eco2001 Nybegynder
03. februar 2004 - 10:56 #5
HNteknik> Hvilke skal relateres til hinanden? (jeg er ikke så god til access)
03. februar 2004 - 10:57 #6
eco, har du prøvet at hente det eksempel, som jeg har lavet til dig?
03. februar 2004 - 10:59 #7
Den model, som du beskriver er ikke altid så hensigtsmæssig.

Hvis du vælger den løsning, som jeg og HNteknik beskriver, så bør alle firmaer i princippet have en koncern (også den lokale grønthandler på hjørnet), men da Koncern-informationer oftest kun er 2-3 felter betyder det rent praktisk ikke noget.
Avatar billede eco2001 Nybegynder
03. februar 2004 - 11:02 #8
Hej Thomas,
Jeg laver tabellen over nogle virksomheder som på forhånd er bestemt som koncerner. Tabellen skal indeholde samtlige virksomheder, såvel moder- som datterselskaber... Prøver lige dit eksempel :)
Avatar billede eco2001 Nybegynder
03. februar 2004 - 11:10 #9
Hej igen... er det virkeligt nødvendigt at operere med 2 tabeller?
03. februar 2004 - 11:21 #10
Det er ikke livsnødvendigt...kun hvis man vil bevare databasen normaliseret og uden redundante date og undgå at gøre opdateringer i f.eks. adresseoplysninger kompliceret(med andre; ja, det er den rigtigste måde med 2 tabeller).

Hvis du forestiller dig, at du kun havde en tabel med samtlige oplysninger om firmaet og f.eks. have 2 feltr som beskrev koncernnavn og web-adresse. Hvis du så feks skal ændre koncernnavnet eller web-adressen (som regel begge samtidig, som det skete med f.eks. FDB/Coop for et par år siden), så skal du ned i samtlige underafdelinger og rette.
Avatar billede eco2001 Nybegynder
03. februar 2004 - 11:37 #11
OK... Fedt at du gider at hjælpe :D

Kan man så lave et (automatisk) tabel udtræk i en tabel nr. 2, som hiver data ud fra de poster som har udfyldt afkrydsningsfeltet "moderselskab" - og derefter kan de andre virksomheder trække nogle data fra moderselskabet med deres tilhørende koncernnr.?
Avatar billede eco2001 Nybegynder
03. februar 2004 - 11:39 #12
Der nemlig rimelig nødvendigt at moderselskabet også figurerer i den første tabel...
Avatar billede hnteknik Novice
03. februar 2004 - 16:23 #13
>>eco2001

Jeg ved ikkeom du har fået svar, men
tblkoncern kunne indeholde ( koncernID, Navn, ....)
tblfirma kunne indeholde (FirmaID, ModerID, KOncernID,navn, Adr,...)

En aavenceret udgave er kun at have en tabel
tblFirma ( FirmaID, ModerID, Navn, Adr,TLF etc.)

Moderselskabet har en tom moderid, resten har moderid som moderselskabet eldler et andet firma under.

Du laver en forespørgsel som har tblfirma og en kopi af tblfirma as moder. Link går fra firmaid i moder til moderid i tblfirma.

Så kan du lave en visning if modid is not null, så har du et barn og kan vise moderdata ( adr etc.)

Henrik
Avatar billede hnteknik Novice
03. februar 2004 - 16:31 #14
Det er måske sort snak:

SELECT tblfirma.firmaid, tblfirma.moderid, tblfirma.navn, tblfirma.adr, tblmoder.navn AS Modernavn, tblmoder.adr AS moderadr
FROM tblfirma AS tblmoder RIGHT JOIN tblfirma ON tblmoder.firmaid = tblfirma.moderid;

skulle gerne give:

firmaid    moderid    navn    adr            Modernavn moderadr
koncern        Koncern    koncernvej       
firma1    koncern    firma1    firma1vej    Koncern    koncernvej
firma2    koncern    firma2    firma2vej    Koncern    koncernvej
Avatar billede hnteknik Novice
03. februar 2004 - 16:42 #15
Du kan lave lidt gimmick ved f.eks. at gøre sådan:

SELECT IIf(IsNull([tblfirma].[moderid]),"","---->") & [tblfirma].[navn] AS Firmanavn, tblfirma.adr, tblmoder.navn AS Modernavn, tblmoder.adr AS moderadr
FROM tblfirma AS tblmoder RIGHT JOIN tblfirma ON tblmoder.firmaid = tblfirma.moderid
ORDER BY tblfirma.moderid, tblfirma.navn;

det skulle gerne se sådan ud:
Firmanavn            adr            Modernavn    moderadr
Koncern            koncernvej       
---->firma1    firma1vej    Koncern            koncernvej
---->firma2    firma2vej    Koncern            koncernvej
Avatar billede hnteknik Novice
03. februar 2004 - 16:54 #16
Nu er det sådan, at du sikkert gerne vil have flere koncerner ind i billedet, så må indføre et koncernID, hvor firmaer unde samme koncern har samme id (f.eks. 1, 2 etc.)

SELECT IIf(IsNull([tblfirma].[moderid]),"","---->") & [tblfirma].[navn] AS Firmanavn, tblfirma.adr, tblmoder.navn AS Modernavn, tblmoder.adr AS moderadr
FROM tblfirma AS tblmoder RIGHT JOIN tblfirma ON (tblmoder.koncernid = tblfirma.koncernid) AND (tblmoder.firmaid = tblfirma.moderid)
ORDER BY tblfirma.koncernid, tblfirma.moderid, tblfirma.navn;

Og det ser sådan ud:

Firmanavn    adr            Modernavn    moderadr
Koncern            koncernvej       
---->firma1    firma1vej    Koncern            koncernvej
---->firma2    firma2vej    Koncern            koncernvej
koncern2    koncern2vej       
---->firma21    firma21vej    koncern2    koncern2vej
---->firma22    firma22vej    koncern2    koncern2vej
Avatar billede hnteknik Novice
05. februar 2004 - 13:52 #17
Ups var det for stor en bid ?
Avatar billede hnteknik Novice
01. april 2004 - 09:44 #18
?
Avatar billede hnteknik Novice
27. april 2004 - 08:58 #19
??
27. april 2004 - 09:03 #20
Han har desværre ikke været aktiv her på eksperten siden midten af februar...så det er spændende, hvornår han har lyst til at kigge forbi igen :o(
Avatar billede eco2001 Nybegynder
29. juli 2004 - 10:45 #21
Beklager mange gange at jeg først reagerer nu. Problemet blev hastigt delt videre til en anden person og med tankerne andetsteds - glemte jeg jeg desværre alt om tråden og at reagere på jeres hjælp!

Beklager igen!
Avatar billede hnteknik Novice
29. juli 2004 - 16:06 #22
Bedre sent end aldrig
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester