我为我自己的公司创建了一个使用 AngularJS 而不是 rest API (Slim/PHP/MySQL) 的工作网络应用程序。现在我有一堆要求为像我这样的其他公司贴上白标签。
我的后端可能有一百个左右用 PHP 构建的 Rest API 端点,这些端点来自 MySQL。
对我来说,分离所有数据的最简单/最好的方法是什么?
我倾向于的设计是将所有这些托管在同一个数据库中,并entityID
为每个表添加一列,并为我的每个白标公司分配一个 entityID。
然后将其添加到每个 SQL 命令中:
...AND entityID=X
ie.
SELECT * FROM invoices WHERE status='paid' AND entityID=1;
这似乎是一种非常“蛮力”的方法,因为我必须编辑 100 多个 SQL 命令,其中一些是复杂的连接。你能想出更好的方法吗?我想知道是否有某种方法可以使用“MySQL 视图”。我已经在使用 Views 来隐藏“已删除的行”:
CREATE VIEW invoices AS
SELECT * FROM _invoices where deleted is null;
所以理论上我应该能够编辑我所有的观点......对吧?
CREATE VIEW invoices AS
SELECT * FROM _invoices where deleted is null
AND entityID=@entityID;
// BUT HOW would i set that entityID as a sql Variable from each PHP call?...
// I suppose I would have to add this before each call?
SET @entity=X;
你能想出另一种方式,或者帮助我在视图中实现那个变量,或者指出我正确的方向吗?