在我使用过的最后两个代码库中,我见过tbl_前缀装饰所有的表。我想不出它们对应用程序开发人员或数据库管理员有什么用处。
如果DBA需要查看表是什么对象,他们总是可以连接到DMV或master中的模式表,对吧?我也无法想象它们对程序员有什么用处,如果项目使用ORM工具,更是如此。
尽管如此,即使是在编写存储过程时,它们似乎也会成为障碍。
有人能以一种非主观的方式解释它们是如何有用的吗?Ex (让tbl_帮助我执行x任务)
发布于 2009-08-22 16:15:59
我一次又一次地听到同样的事情,原因是,这有助于他们了解对象的类型。
例如,在查询中,使用前缀可以帮助它们将表与视图分开。
我真的不同意这一点。在习惯了数据库模式之后,前缀变得冗余,就像所有冗余的东西一样,它可能会变得不同步或使更改变得更难。
假设您有一个表,无论出于什么原因,您都必须将其拆分为两个表。假设您决定创建一个模拟原始表的视图,从两个新表中选择数据。
您是打算在整个代码库中重命名,还是坚持使用前缀为tbl_的视图
所以我的观点是数据库对象名应该是,而不是有任何前缀来推断它们的类型。
发布于 2009-08-22 16:11:30
我想不出有多少好处。您肯定可以看到更干净的SQL,如下所示:
select post.id, post.subject, post.body from tbl_post post where post.author="eric"让你的变量更简单。否则,这看起来就像是你一直在和通过MS Access学习数据库的人打交道。
发布于 2009-08-22 16:25:35
这是hungarian notation,或者更确切地说,是对它的滥用。最初的用途是将变量用作前缀的一些重要方面。表就是表这一事实几乎不是使用匈牙利表示法的有效方式。
在ASP中,匈牙利符号用于指定数据类型,因为VBSCript只有变体。我见过ASP程序员也将其应用于数据库中的表和字段,这是这种误用的一种方式。
https://stackoverflow.com/questions/1316289
复制相似问题