Database design 多个数据库或表命名约定?

Database design 多个数据库或表命名约定?,database-design,naming-conventions,Database Design,Naming Conventions,如何为基于数据库的应用程序分割数据?很多软件都会有一些名为Auth_Users、Auth_which、Auth_which、Admin_which等的表。实际上,这些表都存在于一个数据库中,但它们是按照命名约定组织的。另一种选择是将部分数据拆分为多个数据库。做一个或另一个的利弊是什么?还有第三个选项您没有考虑:用户组角色。在单个凭证关系数据库或LDAP中建立这三个关系 为特定角色分配凭据;给团队一个角色;将用户添加到组 我不会把它们分割成单独的数据库。在我看来,过于分散会使维护变得更加困难。当您

如何为基于数据库的应用程序分割数据?很多软件都会有一些名为Auth_Users、Auth_which、Auth_which、Admin_which等的表。实际上,这些表都存在于一个数据库中,但它们是按照命名约定组织的。另一种选择是将部分数据拆分为多个数据库。做一个或另一个的利弊是什么?

还有第三个选项您没有考虑:用户组角色。在单个凭证关系数据库或LDAP中建立这三个关系

为特定角色分配凭据;给团队一个角色;将用户添加到组


我不会把它们分割成单独的数据库。在我看来,过于分散会使维护变得更加困难。

当您的数据按照您的建议进行拆分时,您就必须跳转才能获得它,并能够在查询或应用程序中使用它。您还增加了维护方面的顾虑,例如权限、同步、备份、强制执行业务规则等。您可能会遇到这种情况的一个实例是,有多个现成的应用程序已经在使用,您需要将所有这些应用程序中的信息关联起来

我敢肯定,在其他情况下,把所有东西都放在一个地方是不可行的。在这些情况下,通过使用视图、存储过程、函数等创建一个新的数据库以链接到多个其他源中的数据,有助于使数据在不集成时显示为集成。但这将需要更多的工作,而且您将无法对完整性特性进行太多的控制,从而导致到其他数据源的链接方案不可靠。“我们在名字和姓氏上进行了链接,但我们得到了各种各样的误报,因为数据输入的杜德·法特(Dude fat)在条目上指认了十几次,所以我们有多个错贴的副本,看起来可能有点匹配。”。你不需要比你所拥有的更多的这种情况

在我看来,一个好的经验法则是尽可能多地在一个数据库中保存相关数据(或您认为在某个时刻可能相关的数据),并花费大量时间考虑适当的命名方案、关系和键/索引。例外情况可能是非常通用的数据,比如政府提供的人口普查结果中的邮政编码数据。像这样的数据最终可能会被用在你拥有的所有其他数据库中,但它实际上与任何数据库都没有关系。在这种情况下,除非你足够幸运只有一个数据库,否则我会创建另一个数据库,将所有奇怪的数据放入其中,然后从需要这些信息的其他数据库链接到它。不过,这也并不总是理想的,因此有些人将数据库设计定性为一门艺术,而非一门科学


总有一些曲线球需要处理,但要保持这样的心态,即你关心正在处理的数据,这意味着要始终考虑如何保持信息的完整性(即业务规则、关系、防止重复等)。

你可能对此感兴趣。“它几乎准备好开始测试版了,只需要再多一点就可以了。”维克多·布莱恩。谢谢你的提醒!