Prowadzę pewną grę via www, pisząc ją uczyłem się php,mysql
aktualnie jestem w trakcie wprowadzania pewnych zmian w grze co wiąże się ze zmianą struktur tabel no i przy okazji wolał bym już zrobić wszystko aby było bardziej prawidłowo napisane ale nie jestem w stanie sam stwierdzić co wypada poprawić/ zmienić dlatego proszę userów tych bardziej zorientowanych w mysql o pomoc
1) Przy rejestracji dane użytkownika są dodawane do 2 tabel
konto - tutaj trzymam podstawowe dane typu login haslo email itp
postacie - nazwa postaci i inne podstawowe dane
oraz id postaci jest dodawane do kilku tabel, w momencie gry dane są w tych tabelach aktulizowane
na chwile obecną chcę wprowadzić możliwość posiadania kilku postaci na jednym koncie dlatego widzę to w taki sposób:
Przy rejestracji dodawane są dane tylko do tabeli konto + ewentualnie jakieś innej gdzie też są informacje o koncie
po zalogowaniu gracz może się wcielić lub utworzyć nową postać (o ile nie ma maksymalnej ilości postaci) i dopiero przy ewentualnym stworzeniu postaci dodawane są dane do tabeli postacie + pozostałych innych tabel związanych z postacią czyli około dodatkowych 6.
Oczywiście do tabeli postacie powinienem dodać pole id konta aby było wiadomo pod które konto jest podpięta postać.
czemu opisałem dosyć szczegółowo jak to wygląda ? ponieważ liczę się z tym że można bardziej wydajnie to zrobić.
2) w każdej tabeli o postaci/koncie mam pole
ID - primery,auto_increment
id konta,postaci - index (oraz z nie wiadomych mi przyczyn unique)
tutaj zastanawiam się po co trzymać 2 takie same pola bo na chwile obecną id = id konto,postac
3) Index jak zweryfikować czy warto na dane pole zakładać index (oprócz na id konta/postaci bo to rzecz oczywista)
4) typ tabeli to MyISAM , może warto przejść na INNODB oraz pozakładać klucze obce na pola w tabelach id konta,postaci

5) jaka jest różnica w jeżeli dla loginu bym utworzył oddzielny index a dla e-mail oddzielny od tego widocznym na zdjęciu.

Uploaded with ImageShack.us
z góry dziękuje za pomoc i proszę o wyrozumiałość
