Вопрос: Можно ли использовать переменную в качестве имени вашей таблицы без использования конструкторов строк?
Информация:
Я работаю над проектом прямо сейчас, когда каталоги данных от моделирования звезды. Для этого я загружаю все данные в базу данных sqlite. Он работает очень хорошо, но я решил добавить гораздо большую гибкость, эффективность и удобство использования в свой db. Я планирую позже добавлять планету к моделированию и хотел бы иметь таблицу для каждой звезды. Таким образом, мне не нужно было бы запрашивать таблицу из 20 млн. Планетарных частиц для 1-4к в каждой солнечной системе.
Мне сказали, что использование конструкторов строк плохо, потому что это оставляет меня уязвимым для атаки SQL-инъекции. Хотя это не так уж и важно, поскольку я единственный человек, имеющий доступ к этим dbs, я хотел бы следовать лучшим практикам. И также, если я делаю проект с аналогичной ситуацией, когда он открыт для публики, я знаю, что делать.
В настоящее время я делаю это:
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.