我想从 MySQL 迁移到 PostgreSQL,这还不是一个实时站点,很快就会启动,并且架构在 MySQL 中已经准备就绪,但鉴于业务模型,我想要一个更好的可扩展数据库,因此要将 MySQL 转换为 PostgreSQL,请执行以下操作我需要逐表手动执行,或者是否有可以使用(或脚本)自动转换表/文件值的 GUI 工具?
我的应用程序是用 codeingiter PHP 编写的。
有一些关键任务表我需要确保永远不会被删除或编辑.只有可能的操作是从中读取,dba可以添加更多行.而已.
现在为了增加安全性,我想阻止甚至dba能够删除/改变记录,所以基本上没有人可以删除或改变记录,也没有超级管理员.这些表对于某些类型的用户的活动跟踪至关重要,这些用户的数据需要无限期保留,有些是关键的查找表.因此系统锁定值和用户跟踪值的混合.
想法是,如果有人想要销毁他们杀死该数据库所需的数据.有没有办法做到这一点?
这种实现是否很好地扩展:
要求是:
系统必须支持x种语言; 其中x将=与业务可翻译的语言一样多
所有系统维护的值(页面内容,电子邮件内容,存储在面向用户的数百个查找表中的值)需要支持多语言.
我的实施:
表:(使用的样本名称)
local_text_table
language_lookup_table
Content_table_1
Content_table_2
Content_table_3
Content_table_4
....
Run Code Online (Sandbox Code Playgroud)
计划:
language_lookup_table包含所有可能语言的列表
lang_id lang_name
Run Code Online (Sandbox Code Playgroud)
local_text_table包含系统上使用的所有可能文本的列表(电子邮件,页面内容,菜单标签,页脚文本等)以及系统将支持的每种语言的1个colunm - FK到language_lookup_table.
text_id
eng_text
spanish_text
arabic_text
...
这样,所有翻译都存储在整个系统的1个表中.我可以在一步中启用/禁用/更新/编辑/添加/删除翻译.在代码中,所有文本都存储为引用(text_id)的关键字.系统会检测用户会话正在运行的语言,并相应地从该关键字的列中提取文本.如果特定行为NULL(未翻译),则默认为英文文本列.
这个好吗?
当然,这对于存储在数百个表中的查找值不起作用,因为除了为每个表提供每个语言自己的colunms之外,我还没有任何计划.然后我还有用户内容,允许用户翻译他们的用户帖子,如我没有计划的博客,评论等.但我想首先关注系统文本并最终确定.