webForumDet fria alternativet

kan man...

Webbutveckling

25 svar · 603 visningar · startad av MizzK · sida 2 av 2

Frågan, av MizzK

koppla två attribut till samma i en annan tabell.. i den "nya" tabellen så är det på många sidan.. och isf hur? ex. \[tabell1 med attibut1\] 1:n till \[tabell 2 med attibut1\] samt n:1 \[tabell3 attibut 1\] om ni försår =)

Läs frågan i sin helhet →
Medlem sedan juni 2003410 inlägg
#21

jo, onödig data..

Medlem sedan juni 2003410 inlägg
#22

ingen som kan komma med en smart lösning hur jag kan få 2 produktnr till 1 unikt nr.. kan man inte skapa en mellan tabeller eller ngt?? kanske de cyprys skrev innan, men hur fungerar det??

Medlem sedan dec. 20003 563 inlägg
#23

Ok. Såhär skulle jag göra om jag verkligen inte fick lägga ihop tabellerna och skulle göra ett slags ordersystem.
Dock vet jag inte riktigt om det är exakt det du skall göra, men jag ger det ett försök.

' Den första tabellen håller koll på ordrarna.
' Den kan se ut ungefär såhär.
' Kundnummer skulle kunna hämtas ur en kundtabell eller så byter man ut kolumnen kundnummer mot nya kolumner, t.ex. namn, adress, telefonnummer bla bla

* Tbl_Ordrar
OrderID | Kundnr | Lagt_datum | ---

' En mellantabell som kopplar ihop alla beställda varor med respektive order.
' I kolumnen Produkttyp anger du vilken tabell man skall hämta produkten ifrån.

* Tbl_Beställda_Produkter
ID | OrderID | ProduktID | Produkttyp | Antal | ---

' Samt i detta fall två tabeller som innehåller alla produkter

* Tbl_Produkter_Typ_1
ProduktID | Namn | Pris | Info | ---

* Tbl_Produkter_Typ_2
ProduktID | Namn | Pris | Annan_Info_Än_Ovan | ---

Hoppas det klarnar lite nu om min tankegång.

Detta är min åsikt bara om man har olika slags information i de båda produkttabellerna. För i sådana fall så kommer du väl inte behöva loopa fram alla produkter från båda tabellerna samtidigt?

Om det däremot är nästan identisk tabelluppbyggnad i de båda tabellerna så är det nästan värt att lägga ihop dem. Om inte bara för en temporär tabell när du arbetar med dem.

Medlem sedan maj 20018 027 inlägg
#24

Ett sätt att få ihop det, med två tabeller, och utan tomma fält (om man nu tycker det är viktigt), är att gå via separata kopplingstabeller mellan tabellerna. Då får man dessutom fördelen att man får en n:n-relation mellan order-tabellen och produkttabellerna. Man kan alltså lägga upp en order för flera saker på en gång.

order_tbl
----------------
order_id
plus diverse annat, dock inget som har med produkterna att göra

order_prod1
----------------
order_id FK(order_tbl)
produktid  FK(prod1)

prod1
----------------
produktid
...........

order_prod2
----------------
order_id FK(order_tbl)
produktid FK(prod2)

prod2
----------------
produktid
...........

I och med ovanstående metod, funkar därför relationerna utmärkt. Man har ju inte någonstans sagt att en FK ska referera till två olika tabeller. Men fortfarande använder man i realiteten två olika tabeller. Dessutom har man tillfört databasen utökad funktionalitet, i form av möjligheten till flera produkter i en och samma order. Det är ju inte helt ovanligt att man faktiskt beställer flera saker på samma gång, så en sådan funktionalitet tycker jag nog bör finnas.

Det kan finnas skäl att fundera på hur man ska hantera saken när en produkt försvinner ur systemet. Databasen kommer fortfarande vara konsistent (förutsatt att man raderar alla referenser till denna produkt i kopplingstabellen). Ordrarna kommer alltså fortfarande se likadana ut, bortsett från att kunden kanske tycker sig minnas att han egentligen beställde fler produkter. Man kanske skulle ha någon slags möjlighet att lagra information i ordern om alla förändringar i produktsortimentet som berör just denna order.

Medlem sedan juni 2003410 inlägg
#25

cyprys tycker om din idee. men hur drar jag relationen?? eller är det en sql fråga hur den vet vilken tabell den skall hämta informationen?? reletionen mella produktnr fårstår jag men hur blir det mellen attributet typ??

Medlem sedan mars 20034 471 inlägg
#26

MizzK skrev:

aasah i ditt exempel hur kopplar man d olika produktrerna till typ???

I tabellen PRODUKT ligger typnumret lagrat.

TYP
typnr   beskr
1       livsmedel
2       filmer
3       spel
...

PRODUKTER
id   namn                    typ
1    mjölk                    1
2    soppa                    1
3    Ronja Rövardotter        2
4    Destroy the Empire XXII  3

Kolumnen typ i PRODUKT motsvarar kolumnen typnr i TYP. Alltså följer att mjölk och soppa är livsmedel, Ronja Rövardotter är en film och Destroy the Empire XXII är ett spel.

255 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)