所以我有这个应用程序,它有多个模块,从项目管理到会计模块.问题是我应该为每个客户(公司)建立一个数据库还是一个包含所有内容的数据库?
1)哪一个会更好的表现?
2)管理多个数据库要困难得多,或者这些数据库是否易于管理.
3)我们将为所有用户提供相同的应用程序,这意味着无论数据库的数量如何,都将使用相同的模式.
4)一些客户将会有很多(例如,会计师可能在一个表中每年增加200万行),而其他客户将使用更少的数据.
你觉得我应该怎么用?
几天前我创建了一个处理发票的应用程序.我想知道如何最好地将折扣整合到我的发票中.我应该将其作为否定项目(在invoice_items表中)或者我应该在发票表中创建"折扣"列吗?
我们有一个多租户应用程序,它有一个包含129个字段的表,可以在WHERE和ORDER BY子句中使用.我花了5天时间试图为我们找到最好的索引策略,我获得了很多知识,但我仍然有一些问题.
1)创建索引时,我应该总是首先使用tenant_id作为复合索引吗?(所有查询在WHERE子句中都有tenant_id =?)
2)由于所有列都可以在WHERE子句和order by子句中使用,我应该为它们创建一个索引吗?(正确的是,当我通过没有索引的列进行排序时,需要6s来执行具有大约1,500,000行的租户)
3)制作PK(tenant_id,ID),但这不会影响该表的连接吗?
任何关于如何处理这个的建议将非常感激.
======数据库引擎是InnoDB
=======
结构体 :
ID bigint(20) auto_increment primary
tenant_id int(11)
created_by int(11)
created_on Timestamp
updated_by int(11)
updated_on Timestamp
owner_id int(11)
first_name VARCHAR(60)
last_name VARCHAR(60)
.
.
.
(some 120 other columns that are all searchable)
Run Code Online (Sandbox Code Playgroud)