Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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/5/sql/79.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
MySQL中每个区域的表_Mysql_Sql_Database - Fatal编程技术网

MySQL中每个区域的表

MySQL中每个区域的表,mysql,sql,database,Mysql,Sql,Database,共有四个地区的记录总数超过一百万条。我应该创建一个带有区域列的表,还是为每个区域创建一个表,并将它们合并以获得顶级排名 如果我合并所有四个区域,我的列中没有一个是唯一的,因此我还需要为主键添加一个id列。否则,name、accountId和characterId将是候选键,或者我应该只添加一个id列 Table: ---------------------------------------------------------------- | name | accountId | iconId

共有四个地区的记录总数超过一百万条。我应该创建一个带有区域列的表,还是为每个区域创建一个表,并将它们合并以获得顶级排名

如果我合并所有四个区域,我的列中没有一个是唯一的,因此我还需要为主键添加一个id列。否则,name、accountId和characterId将是候选键,或者我应该只添加一个id列

Table:
----------------------------------------------------------------
| name | accountId | iconId | level | characterId | updateDate |
----------------------------------------------------------------
编辑:
我是否应该按区域id对表进行分区?

因为所有记录都与特定区域相关,所以3NFe.g中的单个数据库表所有区域都包含一个regionId以及其他属性,这应该起作用。

正确答案与通常的数据库设计一样,是这取决于

首先,一个好的主键应该属于数据库,而不是用户: 因此,如果accountId和characterId是用户可编辑的或在显著位置显示给用户,则无论如何都不应将它们用作表的主键。使用name或任何其他用户生成的字符串作为密钥都是自找麻烦

至于区域,试着预测记录将如何使用

大多数查询是只使用单个区域,还是跨区域使用数据? 不同地区的模式是否有可能出现分歧? 类似数据是否会有不同的使用场景?e、 g.不同地区的不同电话号码模式 总之,这两种方法都会奏效,让您的数据告诉您哪种方法更易于管理