Kom ihåg mig?
Home Menu

Menu


SQL hämta rader med vissa ord i

 
Ämnesverktyg Visningsalternativ
Oläst 2013-06-20, 22:49 #11
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Nerix Nerix är inte uppkopplad
Flitig postare
 
Reg.datum: Oct 2010
Inlägg: 398
Byggde något likt IMDB för några års sedan och kan meddela herrn att ett 10-tal tabeller till behövs för att få plats med all information.

Just nu har du te.x en director direkt i film-tabellen när en film kan ha flera directors. Ett tips är även att normalisera upp till och med 4NF. På så vis minimerar du duplicering av data.
Nerix är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 21:44 #12
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Nerix, jag förstår inte riktigt varför det behövs här?
Slängde ihop en sak som visar vad jag har i min databas:
http://www.anaxa.se/schema.php

Kan jag verkligen göra det enklare? Det känns bara krångligare att göra fler tabeller?
Anaxa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 22:13 #13
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Det beror ju på vad du menar med enklare. Om du ska kunna göra systemet skalbart och göra effektiva sökningar så bör du normalisera din data. Är det 100% säkert att det inte växer nämnvärt så är det inte lika viktigt. Du verkar ha lite problem med din data förresten med negativa timestamps på några ställen.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 22:47 #14
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Databasen kommer växa men jag vill försöka optimera allting nu innan det drar igång.

Det där med negativa timestamps är inget fel utan jag sparar bara ett datum bakom 1970
Anaxa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 23:02 #15
linusoleander linusoleander är inte uppkopplad
Medlem
 
Reg.datum: Feb 2010
Inlägg: 234
linusoleander linusoleander är inte uppkopplad
Medlem
 
Reg.datum: Feb 2010
Inlägg: 234
Citat:
Ursprungligen postat av Anaxa Visa inlägg
Nerix, jag förstår inte riktigt varför det behövs här?
Slängde ihop en sak som visar vad jag har i min databas:
http://www.anaxa.se/schema.php

Kan jag verkligen göra det enklare? Det känns bara krångligare att göra fler tabeller?
Läs på om normalisering så förstår du säker vad han menar.
linusoleander är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 23:36 #16
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Ursprungligen postat av Anaxa Visa inlägg
Databasen kommer växa men jag vill försöka optimera allting nu innan det drar igång.

Det där med negativa timestamps är inget fel utan jag sparar bara ett datum bakom 1970
Aj då, sorry, missade det Sitter på mobilen så allt är lite mindre överskådligt. Hur som helst så bör du strukturera din databas annorlunda så att du slipper trycka in flera värden i samma fält. Du får då snabbt problem. Tänk också på att två personer kan ha samma namn ifall det blir relevant.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-22, 23:58 #17
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Nu som ni kan se på länken så har jag droppat fältet 'genres' på ´movies´-tabellen och lagt in en tabell som heter 'movies_genres'. Den tabellen har relation med tabellerna 'movies' och 'genres'. Det borde följa 3nf om jag har läst på rätt.

@tartareandesire | jo jag antar att jag får lägga alla regissörer i en tabell också på samma sätt som jag gjort med genres.

OT: Om det nu är så att två regissörer har likadana namn, finns det då något sätt att urskilja dem? Jag använder http://www.omdbapi.com/ för att få informationen om en specifik film. Men den hämtar namn och inget mer. Jag vet utifrån att ha kollat på Imdb att varje regissör har ett unikt id så jag antar att jag får göra en kolumn för en regissörs id i min databas.(guh va jobbigt :P)
Anaxa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-23, 02:54 #18
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Conny Westh Conny Westh är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Aug 2005
Inlägg: 5 166
Det mest grundläggande inom normalisering är att varje kolumn ska innehålla atomära värden, dvs du lägger ALDRIG ihop flera värden i samma kolumn. Det är 1NF (första normalformen).

3NF innebär att varje atomärt värde ska vara beroende av hela primärnyckeln och inget annat än primärnyckeln, ... so help me Codd som man brukar säga... (Codd var en matematiker som definierade normaliseringen i relationsdatabaser).
Conny Westh är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-23, 14:55 #19
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Anaxa Anaxa är inte uppkopplad
Medlem
 
Reg.datum: Jun 2013
Inlägg: 58
Okej conny, så om alla filmer enligt min tabell har likadant årtal i sitt 'year' fält så strider det emot tredje formens normalisering?

Jag funderade också hur på jag ska hämta alla filmer som har genrerna komedi och skräck.

Jag provade:
PHP-kod:
string(149"SELECT * FROM movies JOIN movie_genres ON movie_genres.movie_id = movies.id WHERE movie_genres.genre_id = 2 AND movie_genres.genre_id = 1 LIMIT 0, 30" 
vilket inte jag mig någonting eftersom samma värde kan inte vara 2 olika saker samtidigt. Men detta är det bästa jag kan komma på.
Anaxa är inte uppkopplad   Svara med citatSvara med citat
Oläst 2013-06-23, 15:05 #20
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
jonny jonny är inte uppkopplad
Supermoderator
 
Reg.datum: Sep 2003
Inlägg: 6 941
TESTA:
PHP-kod:
SELECT 
FROM movies 
JOIN movie_genres ON movie_genres
.movie_id movies.id 
WHERE movie_genres
.genre_id IN (1,2)
LIMIT 030
jonny är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 17:55.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017