我一直在考虑在数据库中保存“实时”数据集和草稿数据集的最佳方法。实际版本会显示在网站上,草稿版本会一直进行下去,直到准备好上线为止。该模型是关系模型,由许多表组成。
我目前的方法是拥有 2 个数据库,一个用于草稿,一个用于实时。
当您将数据提升为实时状态时,SQL 只是将数据从草稿数据库复制到实时数据库。
这很好,但有点慢而且看起来很混乱。 SQL 通常必须考虑两组表。
另一种方法是制作一个实时指标作为每个表的键的一部分,这样我就可以在同一个表中同时保存实时和草稿 - 并更新指标以使数据实时。
- 我不太认同这个想法。
如果有人有任何其他建议,我将不胜感激。
U.M.
有一张桌子
DataTable
DataKey
DataMode
Data...
PK是DataKey+DataMode
检查约束:DataMode IN ('L','D') --live 或 Draft
您首先使用 DataMode='D' --draft 插入
当它上线时,使用 INSERT SELECT 将其复制到同一个表,设置 DataMode='L'
始终编辑 DataMode='D',并在完成后将其推送到 DataMode='L'。
当您想在模式中显示数据传递时,请使用 WHERE DataKey=@x AND DataMode=@Mode
我不确定您将如何处理删除(草稿删除然后将其推送到实时状态?)您可能需要添加状态列:
DataStatus --'A'ctive 'D'eleted
在一张表中执行此操作允许共同使用所有 sql 以适用于“L”ive 或“D'raft”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)