Jag ska göra ett bloggsystem som projektarbete. Vi sitter nu och håller på att göra en skiss över alla funktioner. Meningen är att man ska kunna gå in på sidan och lägga upp en blogg. Sen ska det finnas en fel funktioner för att skapa inlägg och liknande.
Min fråga är hur jag ska strukturera databasen. Funktionerna vi ska ha kräver 5 tabeller. Ska man då skapa fem tabeller åt varje användare. Eller ska man ha en kolumn i varje tabell med användarens id. Eller man kanske till och med ska ge varje medlem en egen databas? Hur gör man i sådana fall det?
Vi är ganska seriösa och hoppas på att en del personer kommer att använda bloggsystemet när det är färdigt. Vi tror i alla fall att ett par hundra bloggar kommer att registreras.
Tabeller för användare, inlägg och kommentarer är en bra början för ett minimalt system. Tabellen användare har i sin mest minimala utformning ett eget id-nummer, namn samt fält lösenord. (Lösenordssäkerhet är för övrigt något du borde plugga på innan du sätter systemet i produktion.)
Tabellen inlägg har i sin mest minimala utformning ett eget id, användar-id som kopplas mot användartabellen, tid/datum, titel på inlägget samt inläggets innehåll. Sedan kan du använda join i SQL-frågor för att koppla samman tabellerna.
aronMedlem sedan mars 2004485 inlägg Här har du en 8-stegs guide och lite fin info:
http://en.wikipedia.org/wiki/Database_design
Codd ftw
nitro2k01 skrev:
Tabeller för användare, inlägg och kommentarer är en bra början för ett minimalt system. Tabellen användare har i sin mest minimala utformning ett eget id-nummer, namn samt fält lösenord. (Lösenordssäkerhet är för övrigt något du borde plugga på innan du sätter systemet i produktion.)
Tabellen inlägg har i sin mest minimala utformning ett eget id, användar-id som kopplas mot användartabellen, tid/datum, titel på inlägget samt inläggets innehåll. Sedan kan du använda join i SQL-frågor för att koppla samman tabellerna.
Okej, jag har googlat lite på lösenordssäkerhet och hittade detta: http://www.richardlord.net/blog/php-password-security. Om man använder hashing och lägger till en random sträng före eller efter lösenordet, är lagringen tillräckligt säker då?
newseedMedlem sedan maj 2010117 inlägg En bra formel för hashning av lösenord är:
hash(lösenord + användarnamn + salt) = hashat lösenord
lösenordet är det användaren skriver in
användarnamnet är det användarnamn lösenordet gäller för
salt är 4-5 tecken som du själv lägger till på allt för att göra hashningen unik för din server.
Anledningen till de tre komponenterna är:
- lösenordet är ganska uppenbart att det ska vara med
- användarnamnet är med för att göra varje hashning unik för varje användare
- salt är med för att göra alla hashningar unika för din server samt öka variationen bland hash-värdena
Genom att alla tre är med kan man inte lika lätt skapa hash tables för att lista ut vad lösenordet är. Utelämnar du exempelvis användarnamnet kan du bland de hashade lösenordet hitta alla som har samma lösenord. Utelämnar du ditt eget salt så kan "allmänna" hash-tabeller användas för att knäcka lösenorden.
Hur mycket man än håller på går det alltid att knäcka. Men tricket är att göra det så omständligt som möjligt.
colioneMedlem sedan juni 20014 421 inlägg Nej, sluta hitta på egna algoritmer för hashning av lösenord. Jag länkar till min tidigare post om hur man bör hantera lösenord: http://www.webforum.nu/showpost.php?p=1498017&postcount=4