什么是表格前缀?
这通常用于区分相同脚本的不同安装。 例如,假设您的服务器上有两个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。
如果您有一个复杂的网站和数据库结构,表前缀可能有助于防止数据库中的命名冲突。
你经常会看到表前缀的情况下:
多个脚本被整合成为一个网站,并完成网站需要共享数据,但表名称将不唯一的前缀冲突每个脚本。
您正在为您获取的脚本添加功能,并且您想区分该脚本的本地表和您手动创建的新表。这样,如果您创建一个新表,它将不会与将来对基本脚本的更新相冲突,因为它具有不同的表前缀。
你有一个托管计划,只给你一个数据库,你想使用该数据库来服务多个脚本。 (这是不推荐的原因有多种,但我看到的用户这样做。)
当你从头开始编写一个脚本,表前缀,因为您可以控制各个方面通常是没有必要的的数据库结构。当你开始将多个脚本集成在一起时,它变得有用,有时甚至是必要的。它允许您创建独特的数据视图,并在多个脚本之间连接表等,而无需担心数据库中的命名冲突。
你在使用什么样的数据库? – RYFN 2010-12-22 11:16:31
您是指表格名称前缀,例如tblTasks或模式,即dbo.tasks – Robb 2010-12-22 11:18:47