Witam
Najbardziej zbliżony składnią do ogólnie przyjętego PL SQL z darmowych silników baz jest postgresql. Nie jest tak często spotykany u dostawców hostingu współdzielonego, ale nie jest też rzadkością.
To czy ustawisz isam czy innodb dla tabeli niech warunkuje typ tabeli, operacje jakie zamierzasz na niej wykonywać i ilość danych jakie będzie składowała. Każda ma swoje wady i zalety, ale jeśli nie chcesz się w to grzebać, bo wymaga trochę kombinowania, zostań przy innodb (obecnie domyślnie używany w mysql > 5.5)
Zasadnicza różnica w określonej wersji językowej kodowania UTF 8 jest widoczna podczas sortowania danych uwzględniając znaki specjalne.
Odnośnie ludzi filmu, trzymaj ich w jednej tabeli. Każdy może być równocześnie reżyserem, scenarzystą a nawet aktorem. Jeśli dodasz kolejny możliwy typ, nie będzie większego problemu z aktualizacją wszystkich rekordów o dodatkową kolumnę.
Avatary to dość niewdzięczna sprawa i wymaga nie tylko trzymania danych. Musisz sprawdzić co będzie dodawane, najlepiej przetworzyć (zmniejszyć, przyciąć itd) i dopiero zapisać. Jeśli wsadzałbyś to jako blob do bazy, to szybko się rozrośnie i powstanie problem, bo to dość spore stringi. Co zrobisz jeśli zechcesz zmienić ustawienia avatarów i np. zmniejszyć ich wielkość ? Dopiero wtedy byłoby to masakrą
Avatara wepchnij tymczasowo w /temp, przetwórz go generując mu nazwę wraz z losowym stringiem, przenieś do katalogu i dodaj url w bazie. Jeśli zachowasz oryginał (każdy user może mieć np. swój katalog na wszystkie obrazy), późniejsze przetworzenie nie będzie stanowiło wyzwania logistycznego. Miej tylko na uwadze to, że przy kilku tys. plików lub katalogów w jednym miejscu czas odczytu wszystkich jednocześnie będzie odczuwalny.
Generalnie bazy to nie mój chleb powszedni, ale tych kilka wskazówek powinno okazać się przydatnych.
Wielkie dzieki Jo! Każda uwaga jest cenna.