MySQL设计:单独的架构或表前缀?

问题描述 投票:1回答:3

我有一个业余爱好项目,我正在创建自己的软件,将有不同的模块。我们的想法是使模块可堆叠,并可以关闭和打开。我使用MySQL作为数据库后端,并且想知道在自己的模式上是否更好地拥有特定于模块的表,或者是否应该为te表添加前缀。例如,假设我有一个系统模块和一个员工模块;将所有与员工相关的表放在员工计划上会比在表名前添加“emp_”更好吗?

mysql database-design database-schema
3个回答
0
投票

前缀表名通常是不必要的混乱;表格名称或你是JOINing的表应该使它明显发生了什么。 all-tables-in-one-db与几个dbs之间没有性能差异;有一个轻微的语法差异。


0
投票

这对于MySQL来说是一个没有实际意义的点,因为数据库和模式在MySQL中是可以互换的。它与SQL Server更相关。


0
投票

我的MySQL关键字database被重命名为schema,因为它们不是分离的数据库。您仍然可以跨模式建立关系。

在某些ORM中,例如Laravel Eloquent,您可以编写如下关系:

$company->hasMany(Employee)

在这种关系中,您将拥有一个名为company_employee的数据透视表。如果您有两个独立的模式,您想在哪里放置数据透视表?在company架构或employee架构?

Laravel将无法解决这个问题,并且跨模式创建这种关系并非易事。

© www.soinside.com 2019 - 2024. All rights reserved.