![]() |
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, 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? |
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.
|
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 |
Citat:
|
Citat:
|
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) |
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). |
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:
|
TESTA:
PHP-kod:
|
Alla tider är GMT +2. Klockan är nu 11:38. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson