我注意到很多公司都在为他们的数据库表使用前缀。例如。表将被命名为MS_Order,MS_User等。有充分的理由这样做吗?
我能想到的唯一原因是避免名称冲突。但它真的发生了吗?人们在一个数据库中运行多个应用程序吗还有其他原因吗?
答案 0 :(得分:3)
就个人而言,我认为没有任何价值。事实上,对于类智能感知功能来说,这是一个无赖,因为一切都以MS_开头。 :) The Master agrees with me too。
答案 1 :(得分:2)
巨大的模式通常有许多具有相似但不同目的的表。因此,各种“分段”命名约定。
Darn,没有得到第一篇文章: - )
答案 2 :(得分:1)
即使数据库只包含一个应用程序,前缀也可用于将应用程序的各个部分组合在一起。因此,包含cutomer信息的表可能以cust_为前缀,包含仓库信息的表可能以inv_为前缀(对于库存),包含finacial信息的那些可能以fin_为前缀,等等。
答案 3 :(得分:1)
在SQL Server 2005及更高版本中,架构功能不需要任何类型的前缀。通过阅读Schemas in AdventureWorks可以找到它们使用的一个很好的例子。
在某些旧版本的SQL Server中,拥有一个创建伪命名空间的前缀可能对包含大量表的DB很有用。
除此之外,我无法真正理解这一点。
答案 4 :(得分:1)
我曾经在一个系统上工作,这个系统有一个由不同公司创建和维护的应用程序的现有数据库,我们需要添加另一个使用大量相同数据的应用程序,只需几个额外的表我们自己的,所以在这种情况下,具有应用程序特定的前缀可以帮助分离。
与原始问题略有相似之处,我看到数据库使用前缀来指示表所持有的数据类型。查找表有一个前缀,它在大小和内容方面显然都是静态的,并且包含可变数据的表的前缀不同。反过来,这可能会被分解为一个前缀用于添加但未真正改变的表,如日志记录,已处理订单,客户交易等,以及另一个用于更多可变数据(如客户余额等)的前缀。链接表也可以有自己的前缀来将它们分开。
答案 5 :(得分:0)
我从未见过命名冲突,因为将来自不同应用程序的表放入同一个数据库命名空间通常没有意义。如果你有某种可重用的库可以集成到不同的应用程序中,也许这可能是一个原因,但我还没有看到类似的东西。
虽然现在我考虑过,有一些廉价的网络托管服务提供商只允许用户创建非常少量的数据库,因此可以使用单个数据库运行许多不同的应用程序,所以只要名称没有碰撞(这样的前缀约定肯定有帮助)。
答案 6 :(得分:0)
使用特定表的多个应用程序,正确。前缀可防止名称冲突。此外,它使备份表并将它们保存在同一个数据库中变得相当简单,只需更改前缀,备份就可以完全正常运行等等。除此之外,这只是一个很好的做法。
答案 7 :(得分:0)
当多个应用程序进入同一个数据库时,前缀是一种很好的方法来排序哪些sql对象与哪个应用程序相关联。
我还在同一个应用程序中以不同的方式对sql对象进行了前缀,以便于更轻松地管理安全性。即所有具有admin_的对象都需要应用此安全性,其余对象需要其他内容。
前缀可以方便人类,搜索工具和脚本。但是,如果情况很简单,那么根本就没有用处。
答案 8 :(得分:0)
如果多个应用程序共享一个数据库,则最常使用它。例如,如果您安装Wordpress,它会为所有表添加“wp_”前缀。如果您希望应用程序非常容易地共享数据(例如,公司中所有应用程序的会话),这是很好的。)
然而,有更好的方法可以实现这一点,而且我从不为我的表名添加前缀,因为每个应用程序都有自己的自包含数据库。