Sto creando un nuovo database utilizzando direttamente MySQL Worbench, dove finalmente c'è integrato un bel designer per avere sott'occhio le relazioni tra tabelle.

Ho alcuni dubbi su indici e fk, in particolare:

1) Tabella ana_utenti ad esempio:
id_utente (Primari Key)
nome
cognome
id_reparto
id_livello

id_reparto e id_livello conviene segnalarli come indici?


2) Considerando che avrò ad esempio la tabella ana_reparti:
id_reparto (PK)

e associo id_reparto di questa tabella a id_reparto della tabella utenti (con relazione uno-a-molti) ho visto che in automatico la Foreing Key viene messa come indice. A questo punto allora non ha senso il punto 1? (ovvero mettere come indice id_reparto?)


3) Nel fare le relazioni ho visto che esistono diversi tipi: non-identifying relationship e identifying relationship; che differenza c'è e quale devo utilizzare?


4) Una volta fatta la relazione ho queste opzioni per le FK: On Update/On Delete - NO ACTION,RESTRICT,CASCADE,SET NULL; che differenze ci sono e quale dovrei utilizzare?


5) dato che ad esempio ci saranno al massimo 120 utenti, per quanto riguarda ad esempio id_utente sarà sufficiente settarlo a INT(3)? Dato che se non ho capito male in MySql int(10) significa che assegna fino a 10 caratteri, giusto? (di default vedo che assegna int(11)). Se così fosse ha senso mettere int(3), ovvero si risparmia su risorse o altro o non cambia nulla? Lo stesso vale ad esempio per VARCHAR?