数据库设计
以低范式只读表代替视图
这是为什么?
- 视图定义DDL不方便写注释,虽有Trick可以绕过,但需要两套parser机制
- 视图定义由一条DDL SQL完成,如字段多计算复杂,则这个SQL过于复杂,可难护性不好
- 视图没有主键、唯一索性,无法充分发挥Luwak 零代码DAO的优势
数据冗余同步
数据冗余同步是指从第三范式的表同步冗余数据到第一范式表的过程。具体实现这种同步的技术可以有以下几种:
-
触发器(Triggers):在数据库中使用触发器,当对第三范式的表进行插入、更新或删除操作时,自动触发相应的操作,将变化同步到第一范式的冗余表中。
-
数据库作业(Database Jobs):定期运行的数据库作业或脚本,可以根据调度定期检查和同步数据。
-
应用层同步逻辑:在应用程序的业务逻辑中实现数据同步,在对第三范式的表进行操作时,应用程序同时更新冗余的第一范式表。
-
消息队列:使用消息队列(如Kafka、RabbitMQ)将数据变更的消息发送到队列中,消费者应用或服务读取消息并同步到冗余表中。
-
数据库复制技术(Database Replication):一些高级的数据库复制和同步技术也可以用于实现数据冗余同步,但这通常用于整个数据库或大量表的复制,而不是单表的同步。
具体选择哪种方法取决于系统的需求、性能要求、维护成本等因素。
用Luwak Database Updater代替触发器和存储过程
Luwak 推荐使用 Script 处理应用层同步逻辑。