So viele Unternehmensprojekte fügen beim Entwerfen der Tabelle ein Präfixwort zum Tabellennamen hinzu, aber welchen Nutzen hat das? Wenn ich mir das gesamte Projekt ansehe, fand ich es nicht nützlich
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
给表名加前缀,之前是一种比较流行的方式。现在的趋势是放弃添加前缀,因为它带来的好处,远小于带来的问题。很多时候跨库的设计,比表前缀的设计来的更灵活和实用,而且前缀设计(尤其是在混合用的情况下)带来的一些困惑和问题却是很多新手最大的苦恼。所以请慎重。
便于管理
多个项目放在同一个数据库就会有用了
项目1用户表 - p1_user项目2用户表 - p2_user
这么一说你就明白了
设计习惯而已。通常是在同一个库中区分不同的系统表而建立的。如图示例,没前缀的是后台管理系统的表。带wms前缀的是wms系统的表
讲道理,还是按照数据库来划分不同类型的表比较合适,前缀这玩意儿确实累赘
前缀很有用的,比如我想知道所有关于user的表,直接show tables like '%user%'就可以了,用mysql命令行的就知道了
user
show tables like '%user%'
mysql
尤其是很多插件或者模块的项目,加了这些前缀还有利于数据库表的批处理等操作
用来区分所有项目使用同一个数据库中不同项目的数据表
表名称的前缀只是一个命名规范,对于功能实现没有影响。
在比较复杂的系统中,通过表名前缀可以大概了解到表所在的模块和分类,这样做日常开发和运维的时候看起来比较方便,新人了解系统数据结构的时候也有章可循。
个人比较赞同这种做法,成本很低,但对后期的运维方便,为什么不做呢?
数据表在一个数据库时,而且数据表比较多的时候区分是很直接的
一个项目有100多张表以上时,你会懂为什么需要用到.
理想的是user_tabel1可以写成user.table1(建立多库) 问题是在很多开发人员对数据库的认识也只是简单的增删改查,包括很多框架也是(只能连接一个库)
打个比方,oracle最经典的scott实例.scott拥有部门与部门人员的名单, hr(另一个实例)拥有部门列表名单. 还有一个产品实例拥有产品列表名单. hr实例拥有对scott.emp的select权限但是没有update权限个人觉得这样的设计对数据的安全性(当一个实例被攻击破解时不会暴露全部数据),逻辑分明性有很大的提高,但同时也要求开发人员对数据库有更多的理解和掌握. 但往往我们看到的是,开发人员所有的表放在一个库里.权限的控制也只是从业务逻辑上来控制.
(以上都是个人的理解)
给表名加前缀,之前是一种比较流行的方式。现在的趋势是放弃添加前缀,因为它带来的好处,远小于带来的问题。很多时候跨库的设计,比表前缀的设计来的更灵活和实用,而且前缀设计(尤其是在混合用的情况下)带来的一些困惑和问题却是很多新手最大的苦恼。所以请慎重。
便于管理
多个项目放在同一个数据库就会有用了
项目1用户表 - p1_user
项目2用户表 - p2_user
这么一说你就明白了
设计习惯而已。通常是在同一个库中区分不同的系统表而建立的。
如图示例,没前缀的是后台管理系统的表。带wms前缀的是wms系统的表
讲道理,还是按照数据库来划分不同类型的表比较合适,前缀这玩意儿确实累赘
前缀很有用的,比如我想知道所有关于
user
的表,直接show tables like '%user%'
就可以了,用mysql
命令行的就知道了尤其是很多插件或者模块的项目,加了这些前缀还有利于数据库表的批处理等操作
用来区分所有项目使用同一个数据库中不同项目的数据表
表名称的前缀只是一个命名规范,对于功能实现没有影响。
在比较复杂的系统中,通过表名前缀可以大概了解到表所在的模块和分类,这样做日常开发和运维的时候看起来比较方便,新人了解系统数据结构的时候也有章可循。
个人比较赞同这种做法,成本很低,但对后期的运维方便,为什么不做呢?
数据表在一个数据库时,而且数据表比较多的时候区分是很直接的
一个项目有100多张表以上时,你会懂为什么需要用到.
理想的是user_tabel1可以写成user.table1(建立多库)
问题是在很多开发人员对数据库的认识也只是简单的增删改查,包括很多框架也是(只能连接一个库)
打个比方,oracle最经典的scott实例.
scott拥有部门与部门人员的名单, hr(另一个实例)拥有部门列表名单. 还有一个产品实例拥有产品列表名单.
hr实例拥有对scott.emp的select权限但是没有update权限
个人觉得这样的设计对数据的安全性(当一个实例被攻击破解时不会暴露全部数据),逻辑分明性有很大的提高,但同时也要求开发人员对数据库有更多的理解和掌握.
但往往我们看到的是,开发人员所有的表放在一个库里.权限的控制也只是从业务逻辑上来控制.
(以上都是个人的理解)