Avatar billede foko Nybegynder
30. maj 2005 - 15:05 Der er 10 kommentarer

Genbrug tabel

Hej jeg er igang med af lave et program der skal holde øje med nogle IP adr.

der til har jeg oprettet 3 tabels "IP adr" "Printers" og "Network"

Jeg kunne forstille mig af både "Printers" og Network" skal hente de sammen oplysninger fra "IP adr" så det ikke bliver muligt af bruge en IP adr mere en gang.
Avatar billede jpvj Nybegynder
30. maj 2005 - 15:07 #1
Det lyder fint... har du også et spm? :-)

Hint: Et spm. afsluttes med et spørgsmålstegn.
Avatar billede foko Nybegynder
30. maj 2005 - 15:46 #2
Okay HAHA meget morsomt :-)

Mit spørgsmål er hvordan laver man det ???
Avatar billede arne_v Ekspert
30. maj 2005 - 15:53 #3
måske er det nok bare med en foreign key i Printers og Network som peger
på IPAdr

det sikrer faktisk ikke mod en printer og et "hvad network nu end er" kan få
samme IP på database niveau, men det er ret nemt at lave på applikations
niveau
Avatar billede jpvj Nybegynder
30. maj 2005 - 15:54 #4
Jeg ville nok lave et lidt andet design:

TABLE IPnumbers
- Id
- IPnumber (unique)
- DeviceTypeNo (foreign key Id in DeviceTypes)

TABLE DeviceTypes
- Id
- Description (ex. printer, network, ...)

Dit design problem ligger i at du ikke kan lave en multi en-til-relation. Du vil gerne have et unikt IPnumber, der så enten kan bruges af en printer eller en anden enhed (ex. PC). Dette kan du ikke løse ved at gøre det med 2 tabeller. "Uniqueness" opnår du kun ved at lægge værdien/feltet i én tabel.
Avatar billede foko Nybegynder
30. maj 2005 - 16:44 #5
Det er godt nok langhåret for mig jeg har nemlig aldrig arbejdet med SQL før, kun meget lidt
Avatar billede foko Nybegynder
30. maj 2005 - 17:16 #6
Jeg prøver lige af sende mine tabels



Ip Adresse
3    [IP Adresse]    char    20    0

Network
2    [IP Adresse]    char    20    0
0    Model    char    50    1
0    Navn    char    50    1
0    Lokation    char    50    1
1    [Serie NR]    char    50    -1




Printers
2    [IP Adresse]    char    20    0
0    [Printer Navn]    char    50    1
0    [AS/400 Navn]    char    50    1
0    Lokation    char    50    1
0    Model    char    50    1
0    [Serie NR]    char    50    1
0    [Automatisk bestilling af Toner]    char    10    1
0    [Referance nr ved service bestilling]    char    10    1
Avatar billede jtbroad Nybegynder
31. maj 2005 - 12:03 #7
Hvad med:
[IP_Adresser]
IPAdresseID    PK
IPAdresse

[Devices]
DeviceID      PK
IPAdresseID    FK
Type

[NetværkInfo]
NetværkID      PK
DeviceID      FK
Model
Navn
Lokation
Serienr

[PrinterInfo]
PrinterID    PK
DeviceID      FK
Navn
AS400Navn
Lokation
Model
SerieNr
AutoBestilToner
ServiceRefNr
Avatar billede foko Nybegynder
31. maj 2005 - 13:35 #8
Godt så nu har jeg oprette de tabels, skal jeg så bruge et Diagram til at oprette FK ??? og hvis ja kan du så give mig et tip. Eller er det nemmer af lave et SQL Script ? og hvis ja hvordan skal dette se ud ?
Avatar billede jpvj Nybegynder
31. maj 2005 - 14:08 #9
foko> Dit udgangspunkt for dit design skal være følgende: Vil du have DBMS (DataBase Management System) til at sikre at du ikke kan få identiske IP numre, eller vil du kode dig ud af det?

jtbroad's forslag betyder at du selv skal kontrollere det, idet det rækker i både NetværkInfo og Printerinfo kan referere til samme række i Devices. Det kan godt lade sig gøre at sikre dette selv, men skal der være garanti for uniquenes (dvs. at to enheder på intet tidspunkt kan have samme IP), så skal man overlade det til DBMS.

Det er lidt den samme problemstilling med redundante data: Der er i teorien intet til hinder for, at data kan existere flere steder i en database, men alle designlærebøger foreskriver at man i stedet laver én instans, som man så refererer til. Hvis man ikke gør det, så er det programmørerne, der *skal* sikre at data altid er konsistente.
Avatar billede foko Nybegynder
31. maj 2005 - 15:17 #10
Jamen så lyder det som en "DBMS", men som sagt jeg er meget nybegynder i det her så det er sort for mig.
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
Computerworld tilbyder specialiserede kurser i database-management

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