3) Довольно интересный вопрос. В общем, SQLite довольно бесполезен для веб-приложений. Он достаточно хорошо масштабируется по размеру, но ужасно масштабируется по параллелизму, и поэтому, если вы планируете выполнить несколько запросов одновременно, у вас будут проблемы.
Теперь ваша идея в части 3) вопроса состоит в том, чтобы использовать несколько баз данных SQLite (например, по одной на группу пользователей или даже по одной на пользователя). К сожалению, SQLite не поможет вам в этом отделе. Но это возможно. Один проект, который я знаю, который делал это раньше, это Аксиома Дивмода . Так что я бы обязательно это проверил.
Конечно, вероятно, было бы намного проще просто использовать хорошую параллельную БД, подобную той, которую вы упоминаете (Firebird, PG и т. Д.).
Для полноты:
1 и 2) Это должно быть просто, если вы на самом деле не пишете много кода. Я нахожу SQLObject немного ограничительным в этом отделе и настоятельно рекомендую SQLAlchemy . Это гораздо более гибко, и если бы я начинал новый проект сегодня, я бы наверняка использовал его поверх SQLObject. Он никуда не будет перемещать «Объекты». Здесь нет никакой магии, это будет передача строк в таблицах в базе данных. Как уже упоминалось, вы можете сделать это вручную, но это может сэкономить вам время.