Вопрос: можно ли использовать переменную в качестве имени таблицы, не используя для этого строковые конструкторы?
Информация:
Я сейчас работаю над проектом, который каталогизирует данные моей звездной симуляции. Для этого я загружаю все данные в базу данных sqlite. Это работает довольно хорошо, но я решил добавить гораздо больше гибкости, эффективности и удобства использования для моей базы данных. Я планировал позже добавить планетоиды к симуляции, и хотел иметь таблицу для каждой звезды. Таким образом, мне не пришлось бы запрашивать таблицу с 20-метровыми планетоидами для 1-4k в каждой солнечной системе.
Мне сказали, что использование строковых конструкторов плохо, потому что это делает меня уязвимым для атаки SQL-инъекцией. Хотя это не имеет большого значения, так как я единственный человек, имеющий доступ к этим базам данных, я хотел бы следовать передовым методам. И так же, если я делаю проект с похожей ситуацией, когда он открыт для публики, я знаю, что делать.
В настоящее время я делаю это:
cursor.execute("CREATE TABLE StarFrame"+self.name+" (etc etc)")
Это работает, но я бы хотел сделать что-то вроде:
cursor.execute("CREATE TABLE StarFrame(?) (etc etc)",self.name)
хотя я понимаю, что это, вероятно, было бы невозможно. хотя я бы согласился на что-то вроде
cursor.execute("CREATE TABLE (?) (etc etc)",self.name)
Если это вообще невозможно, я приму этот ответ, но если кто-нибудь знает способ сделать это, скажите. :)
Я пишу на Python.