Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.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
Database 如何正确迁移未规范化且不一致的用户数据库_Database_Postgresql_Migration_Database Migration - Fatal编程技术网

Database 如何正确迁移未规范化且不一致的用户数据库

Database 如何正确迁移未规范化且不一致的用户数据库,database,postgresql,migration,database-migration,Database,Postgresql,Migration,Database Migration,我目前在一家初创公司工作,不知何故忽视了他们的基础设施和数据库。 我们的用户数据库乱七八糟(Thx到WordPress),我目前正在努力将其迁移到PostgreSQL。问题是数据不一致。例如,一些用户没有邮政地址,邮政地址格式会随着时间的推移而改变,其他用户的用户名是电子邮件而不是电话号码 我们找到了一些解决方案,例如使用谷歌地图API对邮政地址格式进行地理编码。然而,很明显,我们不能拥有一个与当前数据一致的数据库 所以问题是:我们是否为不一致的用户使用另一个表,并在他们第一次连接后更新帐户时将

我目前在一家初创公司工作,不知何故忽视了他们的基础设施和数据库。 我们的用户数据库乱七八糟(Thx到WordPress),我目前正在努力将其迁移到PostgreSQL。问题是数据不一致。例如,一些用户没有邮政地址,邮政地址格式会随着时间的推移而改变,其他用户的用户名是电子邮件而不是电话号码

我们找到了一些解决方案,例如使用谷歌地图API对邮政地址格式进行地理编码。然而,很明显,我们不能拥有一个与当前数据一致的数据库


所以问题是:我们是否为不一致的用户使用另一个表,并在他们第一次连接后更新帐户时将他们移动到“新”表,还是为所有用户使用一个表并做出一些让步…

您需要考虑两件事:

  • 您的数据将用于什么类型的应用程序->软件->系统?如果您的应用程序要求数据正常化(换句话说,您的应用程序“需要”具有主键/外键关系的结构化数据),那么您需要使用关系数据库来表示数据

  • 如果您的数据不需要“结构化”,您可以使用noSQL数据库(如),它通过键->值(将键链接到文档/数据结构)存储数据

  • 如果需要使用关系数据库或noSQL数据库:

    我会清理你的数据,并有一致的联系方式

    我会让用户更新他们的联系信息(下次登录时),并使用一个布尔字段(用户联系数据可以是一致的true/false)存储这个“干净的联系数据在不同的表中”


    不要做“让步”,否则你将“永远”得到不一致的数据,并且(业务逻辑)代码中的黑客攻击(人们会忘记)-这将永远不会允许你清理数据。

    有两件事你需要考虑:

  • 您的数据将用于什么类型的应用程序->软件->系统?如果您的应用程序要求数据正常化(换句话说,您的应用程序“需要”具有主键/外键关系的结构化数据),那么您需要使用关系数据库来表示数据

  • 如果您的数据不需要“结构化”,您可以使用noSQL数据库(如),它通过键->值(将键链接到文档/数据结构)存储数据

  • 如果需要使用关系数据库或noSQL数据库:

    我会清理你的数据,并有一致的联系方式

    我会让用户更新他们的联系信息(下次登录时),并使用一个布尔字段(用户联系数据可以是一致的true/false)存储这个“干净的联系数据在不同的表中”

    不要做“让步”,否则你将“永远”得到不一致的数据,并且(业务逻辑)在你的代码中被破解(人们会忘记),这将永远不允许你清理你的数据