3

我注意到很多公司在他们的数据库表中使用前缀。例如,表将命名为 MS_Order、MS_User 等。这样做有充分的理由吗?

我能想到的唯一原因是避免名称冲突。但它真的发生了吗?人们是否在一个数据库中运行多个应用程序?还有其他原因吗?

4

9 回答 9

3

就个人而言,我认为它没有任何价值。事实上,对于类似智能感知的功能来说,这真是太糟糕了,因为一切都以 MS_ 开头。:) 大师也同意我的看法

于 2009-07-30T01:12:19.320 回答
2

巨大的模式通常有许多具有相似但不同目的的表。因此,各种“分段”命名约定。

该死,没有得到第一篇文章:-)

于 2009-07-30T01:13:37.217 回答
1

我曾在一个系统上工作过,其中有一个由不同公司创建和维护的应用程序的现有数据库,我们需要添加另一个应用程序,该应用程序使用大量相同的数据和我们自己的几个额外的表,因此在这种情况下,具有特定于应用程序的前缀可以帮助进行分离。

与原始问题稍有相切的是,我看到数据库使用前缀来指示表所保存的数据类型。查找表有一个前缀,它在大小和内容上显然都是静态的,而包含可变数据的表有一个不同的前缀。反过来,这可能会分解为为添加但未真正更改的表(如日志记录、处理的订单、客户交易等)设置一个前缀,而另一个用于更多可变数据(如客户余额等)的前缀。链接表也可以有自己的前缀来分隔它们。

于 2009-07-30T15:27:01.710 回答
1

即使数据库只包含一个应用程序,前缀也可用于将应用程序的类似部分组合在一起。因此,包含客户信息的表可能以 cust_ 为前缀,包含仓库信息的表可能以 inv_(用于库存)为前缀,包含财务信息的表可能以 fin_ 为前缀,等等。

于 2009-07-30T13:15:00.017 回答
1

在 SQL Server 2005 及更高版本中,架构功能消除了对任何类型前缀的需要。阅读AdventureWorks 中的 Schemas可以找到一个很好的使用示例。

在某些旧版本的 SQL Server 中,使用前缀来创建伪命名空间可能对具有大量表的 DB 有用。

除此之外,我真的看不出重点。

于 2009-07-30T13:16:48.127 回答
0

当多个应用程序进入同一个数据库时,前缀是一种区分哪些 sql 对象与哪个应用程序相关联的好方法。

我还在同一个应用程序中为 sql 对象添加了不同的前缀,以方便安全管理。即所有具有 admin_ 的对象都需要应用此安全性,其余的则需要其他东西。

前缀对于人类、搜索工具和脚本来说很方便。但是,如果情况很简单,那么它们可能根本没有用。

于 2009-07-30T01:33:49.613 回答
0

我从未见过命名冲突,因为将来自不同应用程序的表放入同一个数据库命名空间通常没有意义。如果您有某种可重用的库可以集成到不同的应用程序中,也许这可能是一个原因,但我还没有看到类似的东西。

不过,现在我想起来了,有一些廉价的网络托管服务提供商只允许用户创建非常少量的数据库,因此可以使用单个数据库运行许多不同的应用程序,只要名称没有冲突(这样的前缀约定肯定会有所帮助)。

于 2009-07-30T01:12:25.233 回答
0

使用特定表的多个应用程序,正确。前缀可防止名称冲突。此外,它使备份表并将它们保存在同一个数据库中变得相当简单,只需更改前缀,您的备份就会完全正常,等等。除此之外,这只是一个好习惯。

于 2009-07-30T01:12:29.197 回答
0

如果多个应用程序共享一个数据库,则最常使用它。例如,如果您安装 Wordpress,它会在所有表格前面加上“wp_”。如果您希望您的应用程序非常容易地共享数据(例如,跨公司所有应用程序的会话),这很好。

然而,有更好的方法来实现这一点,而且我从不给表名添加前缀,因为每个应用程序都有自己的独立数据库。

于 2009-07-30T02:57:58.163 回答