1) Non è realmente indispensabile... puoi anche (ad esempio) usare funzioni per tutte quelle parti di codice che usi più di una volta nel programma (e che poi semplicemente richiami).
Un framework può facilitarti un lavoro... framework = agglomerato di classi utili, puoi vederla in questo modo molto semplice per iniziare...

2) I grossi social network (come facebook) hanno degli id incrementali.
I video su youtube ed altri gestori hanno un codice diverso, non sò cosa significhi ma puoi gestire il tutto anche con ID incrementale.