数据库表字段命名规则
MySQL数据库命名规范主要包括以下方面:
- 未明确提及具体命名规则:在提供的参考信息中,主要强调了MySQL数据库设计的一系列原则和标准,以确保数据的一致性、性能和可维护性,但并未明确给出具体的命名规范。
不过,基于常见的数据库命名实践,以下是一些建议的MySQL数据库命名规范:
数据库名称:
- 简洁明了:数据库名称应简洁明了,能够准确反映数据库的内容或用途。
- 小写字母和下划线:为了保持一致性,建议使用小写字母和下划线组合来命名数据库。
表名称:
- 复数形式:表名称通常使用复数形式,以表示表中存储的是多条记录。
- 前缀区分:可以根据不同的模块或业务线为表名称添加前缀,以便于区分和管理。
- 小写字母和下划线:同样建议使用小写字母和下划线组合来命名表。
字段名称:
- 描述性:字段名称应具有描述性,能够准确反映字段的含义。
- 驼峰命名或下划线:字段名称可以使用驼峰命名法或下划线命名法,但应在整个项目中保持一致。
- 避免保留字:避免使用MySQL的保留字作为字段名称,以防止潜在的冲突。
索引名称:
- 有意义:索引名称应具有意义,能够反映索引的用途或所关联的字段。
- 前缀标识:可以为不同类型的索引添加前缀标识。
注意事项:
- 一致性:在整个项目中,应保持命名风格的一致性,以便于团队成员之间的沟通和协作。
- 可读性:命名应简洁明了,易于理解和记忆,避免使用过于复杂或难以理解的名称。
- 可扩展性:在命名时,应考虑未来的扩展性和可维护性,避免因为命名不当而导致后续开发中的麻烦。
② 在SQL数据库命名规则中,如何区分'e'和'E'
在SQL数据库中,区分'e'和'E'的关键在于字段的类型。对于数字型字段,通常会使用科学计数法表示数值,例如1.23e-4或1.23E-4。这里的'e'和'E'都是用来表示科学计数法中的10的指数。然而,字符串型字段则不同,它们可能包含文本信息,如"123+456",其中的"+"号表示连接符。
仅通过'e'本身是无法区分其代表科学计数法还是其他含义的。因此,理解字段类型对于正确解析和处理这些字符至关重要。例如,如果字段是数值类型,那么'e'或'E'应被视为科学计数法的一部分;如果字段是字符串类型,那么'e'可能只是普通文本。
正确理解SQL数据库中的'e'和'E'的含义,首先需要明确字段的数据类型。这可以通过查询数据库表的元数据信息来实现。例如,可以使用如下SQL语句查询表字段类型:
sql
SELECT column_name, data_type
FROM information_schema.columns
WHERE table_name = 'your_table_name';
了解了字段类型后,就可以正确处理'e'和'E'了。在实际应用中,对于数字型字段,可能需要将其转换为数值类型进行计算;而对于字符串型字段,可能需要保留其原始形式进行文本处理。
此外,为了确保数据的一致性和准确性,在编写SQL查询和存储过程时,应当遵循统一的命名规范。这有助于避免因字符含义不清而导致的错误。例如,可以使用下划线或驼峰命名法来增强代码的可读性。
总之,正确区分'e'和'E'的关键在于理解字段的数据类型,并据此进行相应的处理。通过查询数据库元数据和遵循良好的命名规范,可以有效避免混淆和错误。
③ 详解 MySQL 数据库对象命名规范、对象设计规范、SQL 使用规范
数据库对象命名规范
数据库对象包括表、索引、视图、图表、默认值、规则、触发器、存储过程和用户。命名规范要求使用具有意义的英文词汇,词汇间以下划线分隔。命名只允许使用英文字母、数字和下划线,且以英文字母开头。应避免使用MySQL保留字,如"backup"、"call"、"group"等。所有数据库对象应使用小写字母。
数据库命名规范
数据库命名应尽量不超过30个字符,以项目名称加代表库含义的简写表示。创建数据库时应添加默认字符集和校对规则子句,推荐使用UTF8或UTF8MB4。命名应保持统一性,使用小写。
表命名规范
表名通常以"t_"开头,表示table。命名规则为"t + 模块简写 + 表简写",例如教育信息表命名为"t_user_einfo"。临时表命名规则为"temp_模块_表_日期",如"temp_user_einfo_20210719"。备份表命名规则为"bak_模块_表_日期",如"bak_user_einfo_20210719"。同一模块的表尽可能使用相同的前缀,表名称应表达含义,并且以小写字母表示,长度不宜超过30个字符。
字段命名规范
字段命名需要表示实际含义的英文单词或简写,单词间用下划线分隔,例如"service_ip"、"service_port"。各表间相同意义的字段必须同名,如"create_time"。应使用小写,长度不超过30个字符。
索引命名规范
唯一索引使用"uni + 字段名"命名,例如"uni_uid"。非唯一索引使用"idx + 字段名",如"idx_uname_mobile"。多个单词间使用下划线分隔。索引名应保持在50个字符以内,组合索引的字段不宜太多。对于多单词组成的列名,应采用缩写形式,如"test_contact表member_id和friend_id上的组合索引"命名为"idx_mid_fid"。
视图命名规范
视图名以"v"开头,表示view,结构为"v + 视图内容含义缩写"。如果视图仅来源于单个表,则为"v + 表名"。如果视图由多个表关联产生,则使用"v + 表名间用下划线连接"。视图名长度尽量不超过30个字符,超过则取简写。严格限制开发人员创建视图,命名应保持小写。
存储过程命名规范
存储过程名以"sp"开头,多个单词间使用下划线连接,如"sp_add_user"。输入参数以"i_"开头,输出参数以"o_"开头。命名应保持小写,长度不超过30个字符。
函数命名规范
函数名以"func"开始,多个单词间使用下划线连接,如"func_calculate_total"。函数命名中应体现其功能。函数名长度不超过30个字符,命名应保持小写。
触发器命名规范
触发器以"trig"开头,描述触发器所加的表。触发器名长度尽量不超过30个字符,后缀可表示触发条件,如"_i"表示插入触发,"_u"表示更新触发,"_d"表示删除触发。命名应保持小写。
约束命名规范
唯一约束使用"uk_表名称_字段名",例如"uk_user_name"。外键约束使用"fk_表名_表名",子表名和父表名间用下划线分隔。非空约束默认非空且给出默认值。命名应保持小写。
用户命名规范
生产使用的用户命名格式为"code_应用"。只读用户命名规则为"read_应用"。命名应保持小写。
数据库对象设计规范
存储引擎选择:无特殊需求时,必须使用innodb存储引擎。字符集选择:无特殊要求时,推荐使用utf8或utf8mb4。表设计规范:减少不同应用间的关联,避免使用外键,确保组件独立性。表设计应针对每个组件的业务进行,表必须有主键,字段应表示单一含义,避免重复列,避免复杂数据类型,确保join字段数据类型一致。文本存储:使用独立的表,通过主键关联。定期删除过期数据,通过分表解决,如使用2/8法则。单表字段数限制在50个以内,物理大小控制在16GB,数据行数控制在2000W以内。
字段设计规范:整型字段使用UNSIGNED INT,动态长度字符串使用VARCHAR,TEXT类型用于大文本数据,长度超过20000个字符使用TEXT,精确浮点数使用DECIMAL,避免使用BLOB类型。字段默认非空且提供默认值,自增字段为整型且为UNSIGNED INT或BIGINT。
索引设计规范:索引创建在区分度较高的列上,选择性计算方式为:count(distinct c_name)/count(*)。遵循最左前缀原则,避免使用外键,Text类型字段使用前缀索引。单表索引数量控制在5个以内,ORDER BY、GROUP BY、DISTINCT字段在索引后形成覆盖索引。联合索引应按照最左匹配原则,避免索引失效,合理使用联合索引和前缀索引。
约束设计规范:主键为有序且无意义的自增序列,唯一性约束创建唯一约束索引。禁止更新主键字段,避免创建外键约束,所有字段非空,所有字段有默认值。
SQL使用规范:避免使用SELECT *,使用明确的字段列表进行查询。禁止全表扫描,确保查询具有明确的过滤条件。分页查询需带有排序条件。使用IN/UNION替换OR,避免使用模糊前缀查询,尽量避免子查询,使用JOIN操作优化。
④ 那位有完整的数据库命名规范给一份,跪等
数据库设计过程中命名规范很是重要,命名规范合理的设计能够省去开发人员很多时间去区别数据库实体。
数据库物理设计包括:表设计,视图设计,存储过程设计,用户自定义函数设计等等。
1、 表设计命名规范:表使用t开头最好能将表根据属性分类并作好编号。
如:编码表可写为tBM001Something t为表开头,BM为业务类型,001为该类别中的第几个表something是表的名称注释。
2、 视图设计命名规范:视图设计过程中使用v开头,视图命名以制作视图的主表为准或是以视图的实现功能为准。
如:上述tBM001Something 为主表制作的视图 可取名vBM001Something
或者vGetSomeThingInfo等。
3、存储过程命名规范:用户自定义存储过程使用p开头以其实现功能命名,
如:pGetSomethingInfo
4、
存储过程命名规范:用户自定义存储过程使用f开头以其实现功能命名,
如:fGetSomethingInfo
此外在制作视图存储过程用户自定义函数过程中,注意写好注释。
还有
一.实体和属性的命名
1. 常用单词已经进行了缩写,在命名过程当中,根据语义拼凑缩写即可。注意,由于ORCAL数据库会将字段名称统一成大写或者小写中的一种,所以要求加上下划线
举例:
定义的缩写 Sales: Sal 销售;
Order: Ord 订单;
Detail: Dtl 明细;
则销售订单名细表命名为:Sal_Ord_Dtl;
2. 如果表或者是字段的名称仅有一个单词,那么建议不使用缩写,而是用完整的单词。
举例:
定义的缩写 Material Ma 物品;
物品表名为:Material, 而不是 Ma.
但是字段物品编码则是:Ma_ID;而不是Material_ID
3. 所有的存储值列表的表前面加上前缀Z
目的是将这些值列表类排序在数据库最后。
4. 所有的冗余类的命名(主要是累计表)前面加上前缀X
冗余类是为了提高数据库效率,非规范化数据库的时候加入的字段。或者表
5. 关联类通过用下划线连接两个基本类之后,再加前缀R的方式命名,后面按照字母顺序罗列两个表名或者表名的缩写。
关联表用于保存多对多关系。
如果被关联的表名大于10个字母,必须将原来的表名的进行缩写。如果没有其他原因,建议都使用缩写。
举例:表Object与自身存在多对多的关系,则保存多对多关系的表命名为:R_Object;
表 Depart和Employee;存在多对多的关系;则关联表命名为R_Dept_Emp
6. 每一个表都将有一个自动ID作为主健,逻辑上的主健作为第一组候选主健来定义,如果是数据库自动生成的编码,统一命名为:ID;如果是自定义的逻辑上的编码则用缩写加“ID”的方法命名。
举例:销售订单的编号字段命名:Sal_Ord_ID;如果还存在一个数据库生成的自动编号,则命名为:ID。
7. 所有的属性加上有关类型的后缀,类型后缀的缩写定义见文件《类型后缀缩写定义》,注意,如果还需要其它的后缀,都放在类型后缀之前。
二.关系的命名
关系的命名基本上按照;如有特殊情况,可以灵活处理.
[must/may/can/should][verb/verb+prep][a/many/exatly num][or a/many]的结构命名
三.域的命名
四.触发器的命名
五.有关于默认的几点说明
1. 严格依赖关系的主细表,主表的后缀Main可以不写。
2. 数据类型是文本的字段,类型后缀TX可以不写。
3. 有些类型比较明显的字段,可以不写类型后缀。
4. 非常明显的关系,可以不写。