Följ Black Week på SweClockers

Exkrema problem med databaser, hjälp!

Permalänk
Medlem
Skrivet av FX9:

Northwind databasen är en standard DB med lite smådata i sig som ofta används i exempel eller utbildning rörande relationsdatabaser. Den är väldigt välkänd

Men jag håller med att vill man ha hjälp är det bra att visa tabellerna och hur det ser ut, så slipper vi gå ut och hämta hem en egen kopia av northwind

Verkar vara något specifik från Microsoft? (I det stora hela, en liten sluten utvecklarbubbla).

Permalänk
Medlem
Skrivet av cp_:

Om vi fortsätter gissningsleken, så försöker du ta bort alla produkter. Du skriver produkterna (plural). Men du har "where productId=1", så du tar bara bort en produkt eller ingen alls om det inte finns någon som har productId=1.

Fortfarande ett tips:
Om du vill att någon skall hjälpa dig så måste du beskriva VAD du vill göra och hur tabellerna ser ut. Vad går uppgiften ut på?

Vi har ingen aning om vad "Northwind" är, vi har ingen aning om vad "Lunds långlager" är. Vi kan inte läsa tankar.

Kan du beskriva problemet du försöker lösa för dig själv med egna ord? Ofta kommer man på lösningen själv när man beskriver problemet för någon annan. Alltså när man förstår problemet/uppgiften fullt ut.

Som någon annan skrev är Northwind- databasen något som de flesta skolor använder. Jag fick bort produkt 1, 2, 15 och 79. Sedan var de tillbaka.

Men nu är det slutuppgiften som gäller, jag ska hantera pallar i Lunds långlager. Ingen databas, utan bara C#. Jag ska kunna lämna in, hämta ut, flytta, söka pallar samt visa lagerinnehåll. Även räkna ut hur mycket det har kostat kunden att lagra pallarna. Jag har gjort en meny, kämpar på med begreppet normalisering (förstår det inte ännu).

Permalänk
Medlem
Skrivet av FX9:

Northwind databasen är en standard DB med lite smådata i sig som ofta används i exempel eller utbildning rörande relationsdatabaser. Den är väldigt välkänd

Men jag håller med att vill man ha hjälp är det bra att visa tabellerna och hur det ser ut, så slipper vi gå ut och hämta hem en egen kopia av northwind

Och där missförstod jag igen, jag ska alltså skapa en databas..

Permalänk
Medlem

Du har väl en redan en i förväg skapad databas northwind för miljön du använder, given av kursen du går för!? - annars om du inte har database med innehållet och strukturerna fylld redan från början så förstår jag om det är motigt

sampeldatabasen 'northwind' för övning och utbildning var väl det som kom med typ första versionen av ms-access om jag inte mins helt galet

för MS SQL-server så finns den att hitta på https://github.com/Microsoft/sql-server-samples/tree/master/s..., men du får nog leta den versionen som passar din miljö - den finns konverterad för många olika databsmiljöer.

Permalänk
Medlem
Skrivet av xxargs:

Du har väl en redan en i förväg skapad databas northwind för miljön du använder, given av kursen du går för!? - annars om du inte har database med innehållet och strukturerna fylld redan från början så förstår jag om det är motigt

sampeldatabasen 'northwind' för övning och utbildning var väl det som kom med typ första versionen av ms-access om jag inte mins helt galet

för MS SQL-server så finns den att hitta på https://github.com/Microsoft/sql-server-samples/tree/master/s..., men du får nog leta den versionen som passar din miljö - den finns konverterad för många olika databsmiljöer.

I slutuppgiften (Lunds långlager) ska jag tydligen skapa en egen databas? Får lägga många timmar på detta!

Permalänk
Medlem

Glöm inte att testa med väldigt många objekt - typ miljontals - för prestandan... - många glömmer det... och det är detta som gör databastopologi-designen utmanande med att lägga olika index och annat rätt för att få korta svarstider vid SQL-frågor....

Permalänk
Medlem
Skrivet av xxargs:

Glöm inte att testa med väldigt många objekt - typ miljontals - för prestandan... - många glömmer det... och det är detta som gör databastopologi-designen utmanande med att lägga olika index och annat rätt för att få korta svarstider vid SQL-frågor....

Är du seriös eller ironisk?
TS ska skapa enklare databaser för en kurs - inte bygga något långsiktigt för massa användare.

Visa signatur

A modest man is usually admired, if people ever hear of him.

Permalänk
Medlem
Skrivet av Roger W:

Är du seriös eller ironisk?
Killen ska skapa enklare databaser för en kurs - inte bygga något långsiktigt för massa användare.

Jag är tjej

Detta är kurs 2, så jag antar att de inte förväntar sig något jätteavancerat

Permalänk
Medlem
Skrivet av Roger W:

Är du seriös eller ironisk?
Killen ska skapa enklare databaser för en kurs - inte bygga något långsiktigt för massa användare.

Dessutom finns det många som jobbar med databaser hela livet utan att tänka särskilt mycket på prestanda och det fungerar ändå. Ibland har man en specialist som skapar index allt eftersom det behövs. Vanliga utvecklare skriver bara SQL-frågor. Det är ganska häftigt att man kan dela upp det på det sättet.

Permalänk
Medlem
Skrivet av Maddah:

Jag är tjej

Detta är kurs 2, så jag antar att de inte förväntar sig något jätteavancerat

Mina ursäkter - jag borde inte antagit (uppdaterade inlägget)
Håller med, de verkar inte krävat nått speciellt avancerat - det verkar ju som du inte behöver lägga krut på felhantering tex, så låter som de vill man håller det enkelt...

(Men ändå lite klurig slutuppgift känns det som: hela grejen att man kan ha en helpall eller två halvpallar per lagerplats skulle räcka för att jag skulle krångla till lösningen misstänker jag )

Visa signatur

A modest man is usually admired, if people ever hear of him.

Permalänk
Medlem
Skrivet av trudelutt:

Dessutom finns det många som jobbar med databaser hela livet utan att tänka särskilt mycket på prestanda och det fungerar ändå. Ibland har man en specialist som skapar index allt eftersom det behövs. Vanliga utvecklare skriver bara SQL-frågor. Det är ganska häftigt att man kan dela upp det på det sättet.

Är inte strukturen rätt från början så kommer både prestandan bli lidande och det kommer vara ett litet helvete att göra om applikationslagret. Index kommer inte hjälpa om man hamnar i det läget. Det händer även i större sammanhang...

Och apropå det...

Skrivet av Maddah:

kämpar på med begreppet normalisering (förstår det inte ännu).

Jag brukar rekomendera Padrones databaskurs i allmänhet och avsnittet "normalformer och normalisering" i synnerhet. Det är i alla fall en bra, kort och pedagogisk text om man är tvungen att lära sig de formella begreppen.

Det viktigaste, särskilt i en introduktionskurs, är så klart att få en känsla för det praktiska hantverket att datamodellera i SQL. Normalisering innebär (enormt naivt förklarat) att 1) lagra varje meningsfull mängd av data för sig (i ett eget fält) och 2) att aldrig dubbellagra samma data på två ställen.

Mina tre bästa tips för lyckad datamodellering är:
- Var aldrig lat när du modellerar, det kommer bita dig i rumpan senare. Om det kanske kan behövas en extra tabell så kommer den tabellen förr eller senare behövas.
- Sov på saken, börja inte koda innan du har slappat ett tag och funderat igenom datamodellen igen.
- Fråga dig själv: Kan du abstrahera något ännu mer?
- Testa/PoC:a: Även om du har funderat igenom tre gånger hur datamodellen ska se ut är det inte förrän den faktiskt möter koden som man ser om det fungerar ordentligt. Koda i en ordning så att det inte blir en för stor sak att göra om och börja med de jobbiga bitarna.

Permalänk
Medlem
Skrivet av Roger W:

Mina ursäkter - jag borde inte antagit (uppdaterade inlägget)
Håller med, de verkar inte krävat nått speciellt avancerat - det verkar ju som du inte behöver lägga krut på felhantering tex, så låter som de vill man håller det enkelt...

(Men ändå lite klurig slutuppgift känns det som: hela grejen att man kan ha en helpall eller två halvpallar per lagerplats skulle räcka för att jag skulle krångla till lösningen misstänker jag )

Jag satsar på G, så tänker inte jobba med halvpallar. Är dessutom truckförare så jag känner att två halvpallar bredvid varandra slutar med trasiga pallar och pallar som ramlar ner, haha!

Permalänk
Medlem
Skrivet av Maddah:

Jag satsar på G, så tänker inte jobba med halvpallar. Är dessutom truckförare så jag känner att två halvpallar bredvid varandra slutar med trasiga pallar och pallar som ramlar ner, haha!

Bra praktisk erfarenhet där
Men jag undrar om det räcker?

Du skrev såhär innan:
” Det är obligatoriskt för G och VG att en Lagerplats kan hantera både helpall
samt en eller två halvpallar eller vara tom”
För mig låter det som du måste fixa hel OCH halvpallar även för G??

Visa signatur

A modest man is usually admired, if people ever hear of him.

Permalänk
Medlem
Skrivet av Wiinis:

Ett tips är att testa en sak i taget.
Säkerställ att det ser ut som du tror.
Andas
Ibland tar det nämligen tid att förstå och det händer alla!

Det tar lite för mycket tid bara, vet inte om jag klarar detta
Tydligen har jag gett mig på slutuppgiften för tidigt dock, det fanns en annan uppgift innan som känns lättare.

Permalänk
Medlem
Skrivet av Roger W:

Bra praktisk erfarenhet där
Men jag undrar om det räcker?

Du skrev såhär innan:
” Det är obligatoriskt för G och VG att en Lagerplats kan hantera både helpall
samt en eller två halvpallar eller vara tom”
För mig låter det som du måste fixa hel OCH halvpallar även för G??

Tydligen har jag gett mig på fel uppgift, detta är slutuppgiften. Nu jobbar jag på rätt uppgift.

Men.. jag har skrivit ett program som tar emot hel - eller halvpallar. Men de lagras på en plats oavsett, jag har inte hanterat att två halvpallar står bredvid varandra (VG). Som truckförare vet jag dessutom att det inte finns hel- och halvpallar, de finns i alla storlekar. Jag sprayade färger på truckgafflarna för att veta hur långt in de skulle in för att greppa en pall. Kan man tänka bort den praktiska erfarenheten på något sätt, haha!

Permalänk
Medlem

Jag har lärt mig något väldigt viktigt denna vecka:

1. Man blir dum i huvudet av en månads sömnbrist, missar att det i en enda tabell plötsligt är ett mellanslag mellan orden. Stavar fel o.s.v.

2. Det är väldigt svårt att se ändringar i en databas när man är uppkopplad mot fel. Alla mina ändringar har gått igenom, jag har bara suttit och stirrat i timmar på fel databas..

Permalänk
Skrivet av Maddah:

Jag har lärt mig något väldigt viktigt denna vecka:

1. Man blir dum i huvudet av en månads sömnbrist, missar att det i en enda tabell plötsligt är ett mellanslag mellan orden. Stavar fel o.s.v.

2. Det är väldigt svårt att se ändringar i en databas när man är uppkopplad mot fel. Alla mina ändringar har gått igenom, jag har bara suttit och stirrat i timmar på fel databas..

Helt naturligt ska du veta!

Trots snart drygt 1,5 år senare så sitter jag fortfarande till och från timmar med något som visade sig vara någon felstavning (som ej "PROBLEMS"-rutan fångade upp i VSCode) eller glömd import som gör att något inte funkar utan att felet lyckades fångas upp i try-catch-blocken som borde ha sagt att någon variabel inte är definierad och/eller saknar en given metod och/eller egenskap.

Fortsätt koda varje dag, samtidigt som du tar raster/pauser. Det är väldigt ofta - upplever jag - under dina raster och pauser som du kommer på vad du ska prova härnäst eller vad felet/lösningen faktiskt är och sedan kommer du tillbaka och löser det på bara några minuter trots att du suttit flera timmar innan och bankat huvudet mot datorskärmen! 🤣

Mvh,
WKL.

Visa signatur

"Den säkraste koden är den som aldrig skrivs"
"Visste du förresten att det är ett mångmiljardbolag?"
"Jag lever inte för att koda utan kodar för att sen kunna leva"

Permalänk
Medlem
Skrivet av Maddah:

2. Det är väldigt svårt att se ändringar i en databas när man är uppkopplad mot fel. Alla mina ändringar har gått igenom, jag har bara suttit och stirrat i timmar på fel databas..

Ett tips, om du får flera databasservrar, döp inte databaserna till samma sak men på olika servrar

Då kan man VERKLIGEN klia sig i huvudet och undra varför saker inte ändras...när man råkat välja fel server men rätt databasnamn

Och blanda ABSOLUT inte i ett sånt läge ihop drift och testmiljö

Visa signatur

5700x3D | RTX 3080 | 2 TB M.2 | 32 GB RAM

Permalänk
Medlem
Skrivet av FX9:

Ett tips, om du får flera databasservrar, döp inte databaserna till samma sak men på olika servrar

Då kan man VERKLIGEN klia sig i huvudet och undra varför saker inte ändras...när man råkat välja fel server men rätt databasnamn

Och blanda ABSOLUT inte i ett sånt läge ihop drift och testmiljö

Haha, jag kommer säkerligen göra alla fel man kan göra!

Det jag inte förstår är varför den ändrar tillbaka varje gång jag startar om. Det var därför jag såg förändringarna, men dagen efter var de borta. Struntar i det just nu, vill ägna mig åt koden. Kör USE Northwind33; varje gång så ändras det till rätt. I fortsättningen ska jag vara mer noggrann

Permalänk
Medlem
Skrivet av Maddah:

Haha, jag kommer säkerligen göra alla fel man kan göra!

Det jag inte förstår är varför den ändrar tillbaka varje gång jag startar om. Det var därför jag såg förändringarna, men dagen efter var de borta. Struntar i det just nu, vill ägna mig åt koden. Kör USE Northwind33; varje gång så ändras det till rätt. I fortsättningen ska jag vara mer noggrann

Om du har flera databaser så måste du specificera vilken du går mot nånstans. Detta kan du göra i connection string eller på annat sätt (som t.ex. USE)

I conn.string är det inte alls ovanligt att man kan gå mot "master" DB, och då måste man i nått senare steg säga exakt vilken DB man måste gå mot.

Om du menar när du kör slagning i t.ex. SQL Management studio så är det naturligt att man måste välja DB varje gång, det är så det fungerar

Visa signatur

5700x3D | RTX 3080 | 2 TB M.2 | 32 GB RAM

Permalänk
Medlem
Skrivet av FX9:

Om du har flera databaser så måste du specificera vilken du går mot nånstans. Detta kan du göra i connection string eller på annat sätt (som t.ex. USE)

I conn.string är det inte alls ovanligt att man kan gå mot "master" DB, och då måste man i nått senare steg säga exakt vilken DB man måste gå mot.

Om du menar när du kör slagning i t.ex. SQL Management studio så är det naturligt att man måste välja DB varje gång, det är så det fungerar

Jaha, tack för info! Precis, det går tillbaka till master varje gång jag startar om.

Permalänk
Medlem
Skrivet av Maddah:

Jaha, tack för info! Precis, det går tillbaka till master varje gång jag startar om.

Du kan ändra så att du i connection string säger åt din anslutning att göra Northwind33 till din DB, då slipper du använda USE.

Men USE fungerar utmärkt det också.

Visa signatur

5700x3D | RTX 3080 | 2 TB M.2 | 32 GB RAM

Permalänk
Medlem
Skrivet av Wiinis:

Ett tips är att testa en sak i taget.
Säkerställ att det ser ut som du tror.
Andas
Ibland tar det nämligen tid att förstå och det händer alla!

Skrivet av Maddah:

Det tar lite för mycket tid bara, vet inte om jag klarar detta
Tydligen har jag gett mig på slutuppgiften för tidigt dock, det fanns en annan uppgift innan som känns lättare.

Har hört det argumentet från kollegor... har inte tid testa X mm, brukar så gott som alltid resultera i att det tar ännu längre tid att bli klar

Permalänk
Medlem
Skrivet av SAFA:

Har hört det argumentet från kollegor... har inte tid testa X mm, brukar så gott som alltid resultera i att det tar ännu längre tid att bli klar

Vad jag menar är att jag är så långsam att jag kanske inte hinner med kurserna. Speciellt inte nu när jag har varit riktigt sjuk i över en månad och ligger efter.. Det är inte bara kodningen som är svår, utan att lära sig programmen, ex. Visual studio som har massa funktioner, Github m.m. Testar gör jag hela tiden och visst sjunker sakerna in, bara kanske för långsamt. Får dock bra hjälp från skolan!