数据库模式中的国家特定字段

Die*_*ira 5 database-design

设计可以具有特定国家/地区字段的数据库模式的最佳实践是什么。

例如一个示例客户表

id
name
email
social_security_number (USA person ID)
curp (Mexico person ID)
cpf (Brazil person ID)
zip (USA postal code)
cep (Brazil postal code)
postcode (UK postal code)
Run Code Online (Sandbox Code Playgroud)

但是由于我们为每个国家/地区提供了更多特定字段,因此该表最终会包含很多字段。

另一种方法是使用代码代替

id
field001 > name
field002 > email
field003 > social security number for any country
field004 > postal code for any country
Run Code Online (Sandbox Code Playgroud)

我知道每种方法都有其优点和缺点。

Nel*_*son 2

您可以使用描述性元数据表来处理这种情况,请查看 Wordpress 数据库图表。

正如您所看到的,它使用三个元数据表,可以为每个帖子、评论和用户存储任意数量的参数。

因此,在您的情况下,一个简单的实现可以像这样:

----------------
|     User     |
----------------
|uid| uname    |
----------------
| 1 | UserOne  |
| 2 | UserTwo  |
| 3 | UserThree|
----------------

----------------
|   MetaData   |
----------------
|mid |  value  |
----------------
|  1 |   TIN   |
|  2 |   SSN   |
|  3 |   UID   |
----------------

------------------------
|      UserMeta        |
------------------------
| id|uid|mid| value    |
------------------------
| 1 | 1 | 1 | 123131   |
| 2 | 1 | 2 | 343234-F |
| 3 | 2 | 1 | 123654   |
| 4 | 3 | 3 | OINASD-01|
| 5 | 3 | 1 | 123984   |
------------------------
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述