1) насчет id (и всего остального - респект
- согласна с
Prisoner (соответственно, связь через id)
2) id скорее всего должен быть auto_increment и PRIMARY KEY (те генериться автоматически и быть первичным ключем - те тоже своего рода индексом)
3) я вообще предпочитаю стиль, когда свой такой id вводится в каждой таблице
4) в другой таблице надо соответственно ввести поле - что-то вроде user_id и на него посадить индекс
3) индексом стоит наградить все поля, по которым будут идти выборки, но следует иметь в виду, что при небольшом количестве записей работать они (индексы), при запросах все равно скорей всего не будут
4) Проверить что и как работает можно при помощи оператора
EXPLAIN *
работать у тебя будет, кстати говоря и без индексов, но при увеличении объема базы работать будет все медленнее (для того индексы в бд и существуют, чтобы по ним быстро шерстить)
Кстати, в апрельском номере
PHP inside
опубликован перевод очень неплохой статьи "Шаблоны баз данных в MySQL" Рассела Дайера. *