2011-11-03 30 views
0

我有一个定期读取几个公共网站并将数据存储在数据库中的cron进程。收集的数据然后发布在我的网站上。管理两份数据

这些数据由django中的一组相关模型表示。

我需要有两组数据:一个是发布的,另一个是刚刚由cron进程收集的。在手动检查后者的准确性后,我需要将其公开并删除之前公开的组。

我看到两种方法可以做到这一点:

  1. 有每个模型包括一个标志,指示是否是公开与否。
  2. 有两个独立的数据库。

各有其缺点和优点。

有没有人实现过类似的东西?有关如何优雅地做的建议?

+0

当你说2个数据库时,你不是指2个表吗?在一个模式中,您可以拥有多个表,并在这些表上有独立的帐户(可以在每个用户级别访问表)。 – extraneon

+0

我的意思是两个单独的数据库。 – akonsu

回答

0

通常情况下,所有应用程序都有数据,这些数据对某人是私人的,对其他人是公开的。例如,在stackoverflow上,您可以阅读您的电子邮件地址,但我无法阅读您的电子邮件。这并不意味着每个用户都有一个数据库。

基本上你有两种方式来保护您的数据:

  1. 应用限制对数据的访问。
  2. 数据库限制数据访问(与用户,意见和三角钢琴)

您可以实现applicacion安全(1)或应用程序+数据库安全(1 + 2)。

如果您的安全设计是正确的,但可能您收集海量数据(数TB),并且希望将数据库负载拆分到两台服务器上,则一个数据库可能就足够了。真的,这个问题有很多参数。

这是一个综合练习。

+0

谢谢你的回答。我不是在谈论授权。我想从某处读取数据,检查它是否正确,并将新数据与旧数据交换。 – akonsu

+0

好的,你可以版本化数据,只显示最新的数据,并在需要时删除旧数据。 – danihp

+0

我问这个问题的原因是因为我想知道人们如何实现版本控制,因为我的特殊情况是版本控制问题的一个子集,因为我不想保留历史记录。只是最近看到的数据和“当前”数据。 – akonsu