命名表和视图时我应该遵循什么标准?例如,在表名的开头放置tbl_之类的东西是一个好主意吗?我应该以某种方式指定代码/查找表,例如ct_,lut_或codes_?还有其他做/不做吗?

我正在使用MS SQL Server,并且具有许多数据库,因此可以将其用作标准配置的标准,这是很高兴的。

有帮助吗?

解决方案

好的,首先永远不要将TBL放在桌子的名称前。这是一张桌子,我们现在已经这样做了。这就是所谓的匈牙利符号,人们在5年前停止这样做。

只需根据其本体调用对象即可。如果表格持有员工数据,则将其称为“员工”。如果持有有关计算机的信息,则称其为“计算机”。如果它将计算机映射到员工中,则称其为“ imployecomputer”或“ Computer emloyeee”(我个人更喜欢“ Employeecomputer”)。

没有真正的权利命名约定(除了不使用匈牙利符号外)。只要对象名称有意义,重要的是。

其他提示

我们将模式(也许将它们视为SQL中的名称空间)进行权限和分组。因此,我们有代替“ tbl”等

  • 数据
  • 数据
  • 数据

没有代码进入数据模式。数据模式外没有桌子。如果您愿意,这当然可以扩展以进行查找或登台模式。

对于观点,我们使用 vw 但这是为了将它们与SQL Server 2000中的表区分开,现在有点遗产

我个人是我的忠实粉丝 法登·贝宁格, ,这意味着在这里,不允许名称为另一个有效名称的开始。

其次,两个名称之间的锤击距离要好于一个以上的字母。

是的,这是预期时期的规则,但它们使生活更轻松。

当语音识别变为真时,必须发音三个名字,否则您会发疯。

我不知道实际上有任何“最佳”命名惯例,因为这确实归结为个人喜好和易于发展。我的建议是选择命名惯例并遵守。如果您想用下划线分开单词,请在所有数据库对象中执行此操作。如果您想使用骆驼,请在所有数据库对象中执行此操作。

在我的商店中,我们遵守以下规则:

我们用下划线将单词分开,并使用所有下案字母。
我们的桌子名称描述了它们是什么:DBO。
我们多对多的桌子名称也描述了它们是什么(加上 毫米 指示映射的许多与许多关系:dbo.person_mm_address。我们的用户定义的存储过程描述了对象和正在执行的操作:usp_person_select,usp_address_select_by_city我们的视图和函数遵循与存储过程相同的规则。我们的索引包括表,键列(按顺序)和群集/非群集的指示:ix_person_last_name_first_name_nce_nc

仅仅因为这是我们在我的商店中使用的东西,并不意味着这些规则适合您。选择您和您的开发团队同意的东西既有用又易于开发,并建立了一种了解和使用您决定的命名惯例的文化。在我们的情况下,这包括对数据库中创建的任何对象的代码审查。随着时间的流逝,有记录的命名公约和同行代码审查的组合导致与公约的偏差越来越少。

我希望这种“非答案”能以某种方式有所帮助。

从几年前开始,我对此感到满意

  • 表名:小帽子和下划线,单数{客户,产品}
  • 许多关系的表名:tablename1_tableName2:{customer_product}
  • 视图:小帽子添加到末端{customerv,productv,product_groupv}
  • 存储的Procudures:表名和功能{customer_select,customer_insert,customer_delete,customer_update}

如果您有一个便宜的共享托管软件包,则需要在所有对象的前面使用项目缩写,例如数据库管理员网站,da_users,da_questions

许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top