什么是表格前缀,它们的优点和缺点是什么?这与MySQL有关。什么是表格前缀?
什么是表格前缀?
回答
这通常用于区分相同脚本的不同安装。 例如,假设您的服务器上有两个Joomla安装包含不同的内容,但只有一个MySQL数据库。
现在,由于显而易见的原因,两个Joomla安装不能共享相同的数据库表,因为这会导致安装显示相同的内容。这就是前缀踢入的地方。
通过使用不同的表前缀,你可以让Joomla安装#1知道它应该使用前缀JOS_的所有表,并且Joomla安装#2必须使用所有的表前缀JOS2_
根据您的命名规则,它可能有助于区分表和视图。
缺点是,就桌子名称而言,您可能会受到限制。 Oracle对此有30个字符的限制。如果您使用“Tbl_”作为前缀,则会自动丢失4个字符。这可能是一个问题。
表不需要前缀。
这完全取决于你。
但是,我们在它们所属的应用程序中将表与MODULES相关联,以便更轻松地对表进行分组。
有些人主张tbl或tbl_(例如tbl_MyTable或tblMyTable),而其他人则使用后缀如MyTable_T。
我个人以避免前缀/后缀。如果模式随着时间的推移而改变,我可以在View中代替Table来替代,所以我没有真正区分这两种类型的对象。
最重要的是您的团队中记录了您的命名指南,并且您都遵守相同的一致性指导原则。
表前缀也可用作额外的安全措施。例如,添加表前缀掩盖了常用表名,这使得黑客更难通过SQL注入或其他安全漏洞访问数据库中的数据,因为它们首先需要发现您的表名是什么。
但是,一定要将表前缀视为另一层安全性,而不是您唯一的安全方法。您仍应采取其他安全措施来防止SQL注入和其他类似威胁。例如,根据代码的设置方式,黑客可能仍然可以通过SQL注入运行“show tables”命令来获取数据库表的名称。
奇怪的是,没有人提到你也可以使用表前缀来使用通常保留的关键字作为表名。
E.g.现在可以使用t_user或t_order。
如果您有一个复杂的网站和数据库结构,表前缀可能有助于防止数据库中的命名冲突。
你经常会看到表前缀的情况下:
多个脚本被整合成为一个网站,并完成网站需要共享数据,但表名称将不唯一的前缀冲突每个脚本。
您正在为您获取的脚本添加功能,并且您想区分该脚本的本地表和您手动创建的新表。这样,如果您创建一个新表,它将不会与将来对基本脚本的更新相冲突,因为它具有不同的表前缀。
你有一个托管计划,只给你一个数据库,你想使用该数据库来服务多个脚本。 (这是不推荐的原因有多种,但我看到的用户这样做。)
当你从头开始编写一个脚本,表前缀,因为您可以控制各个方面通常是没有必要的的数据库结构。当你开始将多个脚本集成在一起时,它变得有用,有时甚至是必要的。它允许您创建独特的数据视图,并在多个脚本之间连接表等,而无需担心数据库中的命名冲突。
- 1. 什么是前缀正则表达式?
- 2. 什么是注册前缀?
- 3. $(前缀)/ etc/gitconfig上的$(前缀)是什么?
- 4. 没有定义前缀的XML文档的前缀是什么?
- 5. Python字典键/带前缀的值 - 前缀是什么?
- 6. 简单英语什么是前缀,后缀,中缀在Swift中?
- 7. CSS前缀的用途是什么?
- 8. 什么是JSON前缀用于?
- 9. 什么意思前缀::意思是
- 10. NSLog中的前缀是什么意思?
- 11. 什么是Blur.js中的缓存前缀?
- 12. 什么是r-前缀的函数?
- 13. 锁前缀的范围是什么?
- 14. 什么是Redis“out_”前缀键?
- 15. chrome_debug.log中日志前缀的格式是什么?
- 16. 为什么http.Client {}以前缀?
- 17. 什么是通用后缀和前缀代码准则?
- 18. 什么是为链表写前缀的惯用方法?
- 19. ::什么都没有加前缀时是什么意思?
- 20. UNIX路径 - 什么,。,〜,..前缀是什么意思?
- 21. 为什么前缀返回没有特定前缀的文档?
- 22. Django表单前缀与表格设定
- 23. python字符串之前的b前缀是什么意思?
- 24. IController,IObserver之类的名称前的前缀“I”是什么?
- 25. 什么是cdn前缀而不是www中的网址
- 26. Pdo表前缀
- 27. 为什么当我们需要添加android:前缀风格?
- 28. SQL:删除带有前缀的表格
- 29. 消除Lua中表格的前缀
- 30. WordPress-ERROR:“表格前缀”不能为空
你在使用什么样的数据库? – RYFN 2010-12-22 11:16:31
您是指表格名称前缀,例如tblTasks或模式,即dbo.tasks – Robb 2010-12-22 11:18:47