Jag har valt att göra mitt ER-diagram på följande vis:

Allt är på engelska för att det inte ska bli problem senare i vertabelo/ redgate och allt börjar med liten bokstav (camelCase).
”userId” är primärnyckeln, den skall automatiskt öka för varje ny användare, dvs den ska sättas som auto increment senare.
”username” och ”password” är ganska självförklarliga, användarnamn och lösenord.
”email” kan vara bra att ha om jag i framtiden vill ha en ”glömt ditt lösenord?”- funktion eller förmedla någonting viktigt till användare. Helt enkelt, bra för kontakt. (kanske borde vara nullable)
”lastPassword” vill jag lagra för att se till att man inte bara växlar mellan ett fåtal lösenord när väl det ska bytas och för allmänna säkerhetsskäl. viktigt är även att den ska vara nullable.
”passwordChangeDate” är till för att man av säkerhetsskäl inte ska kunna byta lösenord för ofta, ex. minst en vecka mellan lösenordsbyte.
”failedLoginAttempt” finns, igen, av säkerhetsskäl. jag tänker något i stil med att om man misslyckas med inloggning 5 gånger så får man inte försöka igen på XX minuter, eller eventuellt att kontot deaktiveras. den ska också kunna vara null.
”lastLoginAttempt” märker tid och datum då du senast försökte logga in, jag tänker att efter ca en timme efter senaste inloggningsförsök så sätts ”failedLoginAttemps” till null. Och om ”FailedLoginAttempts” är satt till 5 så kan man inte logga in tills tiden har nått ”lastLoginattempt” + XX minuter, då ”failedLoginAttempts” sätts till null.
”active” är till för att man ska kunna deaktivera sitt konto men att informationen på kontot fortfarande finns kvar, både av säkerhetsskäl samt att krångel med index skulle kunna uppstå.
Här är även den mer fördjupade delen, där jag modellerat för banken:

Här är det mesta ganska självförklarligt
