Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的mysql数据库设计方案正确吗?_Php_Mysql_Sql_Database_Sharding - Fatal编程技术网

Php 我的mysql数据库设计方案正确吗?

Php 我的mysql数据库设计方案正确吗?,php,mysql,sql,database,sharding,Php,Mysql,Sql,Database,Sharding,我在系统中有客户和表演者。客户可以创建要执行的任务,而执行者显然可以执行这些任务 主要问题是我必须确保系统的可伸缩性和一致性。我应该设计这个数据库,以防每个表都位于专用服务器上(所以我不能在这些表之间进行任何事务和连接) 我认为最好将操作存储在一个表中(我们称之为操作表),例如创建任务、执行任务、删除任务、付款和付款,每个用户与钱交互的操作(因为创建任务会在其acc上阻塞一些钱)都将存储在这个表中 当然,我们必须对任务列表做出响应,其中包含用户帐户上的偏移量和当前金额。对于这两种类型的请求,我认

我在系统中有客户和表演者。客户可以创建要执行的任务,而执行者显然可以执行这些任务

主要问题是我必须确保系统的可伸缩性和一致性。我应该设计这个数据库,以防每个表都位于专用服务器上(所以我不能在这些表之间进行任何事务和连接)

我认为最好将操作存储在一个表中(我们称之为操作表),例如创建任务、执行任务、删除任务、付款和付款,每个用户与钱交互的操作(因为创建任务会在其acc上阻塞一些钱)都将存储在这个表中

当然,我们必须对任务列表做出响应,其中包含用户帐户上的偏移量和当前金额。对于这两种类型的请求,我认为我们应该创建某种缓存表,这种模式的主要缺点是,对于每个任务表请求和每个用户资金帐户请求,我们都应该选择最后添加到操作表以进行更新,以防丢失某些内容

我的数据库设计对吗?
是否有其他技术可以帮助避免分布式数据库的不一致状态

如果您的表太大,那么每个表都必须驻留在自己的服务器上,这就是一个大数据库。这将与国家安全局可能拥有的任何东西相匹敌

总有一天你会到那里的。但与此同时,至少从99.99%的数据库所在的位置开始

如果表之间不能有事务和联接,那么也不能有外键约束之类的普通特性。在不断增长的数据库中,这意味着灾难。对于任何数据库,无论大小,都不能忽略的首要原则是数据完整性。如果你不能保持这一点,你将得到大量的数据和很少的信息