我有一个业余爱好项目,我正在创建自己的软件,它将有不同的模块。我们的想法是使模块可堆叠,并可以关闭和打开。我使用MySQL作为数据库后端,并且想知道在自己的模式上是否更好地拥有特定于模块的表,或者是否应该为te表添加前缀。例如,假设我有一个系统模块和一个员工模块;将所有与员工相关的表放在员工计划上会比在表名前添加“emp _”更好吗?
答案 0 :(得分:0)
前缀表名通常是不必要的混乱;您JOINing
的表名或表应该能够清楚地显示正在发生的事情。 all-tables-in-one-db与几个dbs之间没有性能差异;有一个轻微的语法差异。
答案 1 :(得分:0)
这对于MySQL来说是一个没有实际意义的点,因为数据库和模式在MySQL中是可以互换的。它与SQL Server更相关。
答案 2 :(得分:0)
我的MySQL关键字database
重命名为schema
,因为它们不是分开的数据库。您仍然可以在架构之间建立关系。
在诸如Laravel Eloquent之类的ORM中,您可以编写如下关系:
$company->hasMany(Employee)
在这种关系中,您将有一个名为company_employee
的数据透视表。如果您有两个独立的架构,则要将透视表放在哪里?在company
模式还是employee
模式上?
Laravel将无法解决此问题,并且在架构之间创建这种关系并非易事。