我已经设计了一个使用 SQLite 数据库的网站。我没有使用一张大表,而是将其设计为当用户注册时,会为他们创建一个单独的表。每个用户可能会使用数百条记录。我这样做是因为我认为这样会更容易构建和访问。
我在该网站上的其他问题中发现,一张表比为每个用户使用多个表更好。
是否值得重新设计我的网站,以便不再有许多桌子,而是一张大桌子?我当前的方法似乎运行良好,尽管它仍在开发中,所以我不确定它在真实环境中的效果如何。
问题是:在性能、效率、组织和空间方面,更改代码以形成一个大型数据库而不是许多单独的数据库是否值得?
SQLite:创建用户表。
CREATE TABLE " + name + " (id INTEGER PRIMARY KEY, subject TEXT, topic TEXT, questionNumber INTEGER, question TEXT, answer TEXT, color TEXT)
Run Code Online (Sandbox Code Playgroud)
SQLite:将帐户添加到帐户表中。
"INSERT INTO accounts (name, email, password, activated) VALUES (?,?,?,?)", (name, email, password, activated,)
Run Code Online (Sandbox Code Playgroud)
请注意,如果有什么区别的话,我将 python 与 Flask 一起使用。
编辑
我也知道已经存在这样的问题,但是没有人说明优点或缺点是否值得。
在面向对象的语言中,您会为每个用户创建一个类吗?或者您是否会为每个用户提供一个类的实例?
每个用户一张表是一个非常糟糕的设计。
questionNumber?accounts?诚然,通过添加前缀很容易解决这个问题user_,但仍然需要记住一些事情。lol; DROP TABLE accounts; --?查询参数是防止此类攻击的主要方法,它不适用于表名。我还可以继续说下去。
请合并所有表,并阅读数据库规范化。
| 归档时间: |
|
| 查看次数: |
1540 次 |
| 最近记录: |