对于大多数主要网站,您可以进行CRUD操作吗?每个用户都有自己的数据库表吗?我很想看到一个数据库结构的例子,其中有多个用户,我正在查看我的wordpress数据库结构,并且无法了解twitter,tumblr甚至是stackoverflow如何运行数据库。动态地为用户创建表格很容易吗?提前致谢。每个用户都有自己的数据库表吗?
回答
为什么每个用户都有自己的表?用户应该只是一个表中的条目。然后,您使用该用户的ID来查找其他表中的其他记录。
如果您的数据库包含sy 6表,那么每次添加一个用户时,您也必须再次添加其他表。
所以现在你有10个用户和60个表。
现在考虑必须连接到特定用户的正确表... :) – 2010-08-01 05:54:43
哎呀!是什么噩梦 – griegs 2010-08-01 05:59:26
有多种不同类型的数据库,但通常不是。更常见的情况是,您将拥有一张表,但具有指定用户标识的字段。在MySQL中,您可以选择用户标识符与特定值匹配的行的子集,这就像动态创建每个用户表一样。
实体 - 属性 - 值(EAV)表通常令人讨厌 - 性能差,但可能是适应功能要求的必要罪恶。 – 2010-08-01 05:56:06
@OMG,EAV如何发挥作用?根据数据类型您有不同的表格,但是您可以通过字段将条目链接到用户。我不确定这与EAV有什么关系。 – 2010-08-01 06:02:45
对于每个用户,不需要单独的表格。但是可能会有一些涉及数据库的优化。
用户实际上代表单行表的行。关于用户,可以有其他表格用于特定目的。假设“评论”表包含用户的评论,并且该表可以具有来自用户的多个评论。然后,该用户表与评论表具有一对多关系。
我在这里看到的一些优化是创建视图(Certin情况下的物化视图),基于查询使用的列索引,甚至基于日期/用户的表的分区或其他相关的应用标准。
物化视图是臭名昭着的不适应;表分区是您必须支付的一项功能(仅在SQL Server的企业版/开发版中提供,不知道关于Oracle ...)。这两个概念都超出了OP的要求。 – 2010-08-01 05:58:01
您的问题的答案是“否”。通常这些网站所做的是为用户提供一个表,其中表的键是整数ID字段,属性是用户的属性(例如名称,屏幕名称,密码等)。在SQLite中,它看起来像这样:
create table User (id integer, email string);
然后你有两个表,比如blog_posts和comments。每个表格都包含所有用户的博客文章和评论。为了识别用户,有一个“user_id”字段,该字段标识该表中的行属于特定用户。
create table BlogPosts (id integer, description text, user_id integer);
create table Comments (id integer, description test, blogpost_id integer, user_id integer);
其他数据库的语法相似。 “user_id”将博客文章关联到用户,并将评论发布给用户。 blogpost_id将博客帖子关联到用户。即您可以将每个用户与他的所有问题和评论相关联。
您可以为每个用户创建一个表,但必须具有哪个用户连接到哪个数据库的映射,并且您需要始终为每个用户打开数据库的新连接。
您无法安全地执行此操作,因为参数化查询无法将表名作为参数。
- 1. HTML5 + Java JAX-RS + Neo4J:每个用户都有自己的数据库
- 2. 每个存储库都有自己的hg serve实例吗?
- 3. 每个进程都有自己的页表吗?
- 4. 有了MVVM,每个UI窗口都有自己的ViewModel吗?
- 5. 每个CALayer都有它自己的CGContextRef吗?
- 6. 每个'HttpRequest'在ASP.NET中都有自己的线程吗?
- 7. 应该每个组件都有自己的mapDispatchToProps吗?
- 8. 每个类都必须拥有自己的OnClickListener吗?
- 9. 每个进程都有自己的stdin,stdout和stderr吗?
- 10. 每个活动都必须有自己的模型吗?
- 11. 每个宝石都有自己的耙子吗?
- 12. 每日记录,应该每个用户有它自己的表?
- 13. LARAVEL - 每个用户拥有多个数据库,用户每次都选择数据库连接
- 14. 每个派生表都必须有它自己的别名Error?
- 15. JEvent是否有可能让每个用户都有自己的日历?
- 16. 程序的每一行都有自己的地址吗?
- 17. WCF多个端点,每个端点都有自己的用户名/密码
- 18. ZeroMQ上的每个队列都需要自己的端口吗?
- 19. 每个数据库一个用户vs所有数据库的单个用户
- 20. 每个用户在iBrowser中都有自己的图像文件夹,用于TinyMCE
- 21. PHP MVC - 每个页面都需要自己的类吗?
- 22. 每个线程都不需要它自己的JVM副本吗?
- 23. 基于PHP的游戏 - 给每个用户自己的数据库
- 24. Bing地图中的每个图层是否都有自己的数据源?
- 25. Nextgen Gallery - 每张图片都有自己的图库
- 26. 两个并行的TransactionScope每个都有它自己的连接
- 27. Postgresql - 每个用户一个数据库或每个用户一个数据库
- 28. 多个catch子句,每个都有自己的消息框
- 29. 多个UIAlertView;每个都有自己的按钮和动作
- 30. Zend中的每个表都必须映射到它自己的类吗?
在解决动态表创建之前,我会寻找其他解决方案 – 2010-08-01 05:02:38