gpt4 book ai didi

c# - 数据库关系记录存档和恢复

转载 作者:搜寻专家 更新时间:2023-10-30 20:27:33 24 4
gpt4 key购买 nike

几年前,我根据一项要求创建了一个小型系统,其中从 Android 拍摄的图像连同其各自的自定义数据上传到服务器,然后存储在磁盘上,描述图像的自定义数据被进一步分解,存储在数据库中。每个拍摄的图像实际上都是一个事件的一部分。在此期间,该系统不断发展壮大,现在已经有超过 10,000 个事件,每个事件有超过 500-1000 张图片。虽然,表现并没有那么糟糕,但我相信这只是时间问题。我们现在正在考虑将过去的事件存档在另一个名为 Archive 的数据库中。现在这是我打算做的事情。

  1. 存档数据库将具有完全相同的结构,并且存档功能可能具有搜索机制,但是,检索速度在这里并不是一个大问题,因为这种情况很少发生。
  2. 我正在考虑从一个数据库中删除记录并将其克隆到另一个数据库中,但是标识列可能不会让我非常无缝地执行此操作。 (我也可能错了。)
  3. 还需要一个恢复选项。 (这可能是最具挑战性的部分)
  4. 如果我只是将原始数据库中的记录(身份除外)设为空白,然后将其复制到另一个没有身份限制的数据库,可能不会有任何帮助,而且我认为这会失去练习的目的。

有什么建议吗?是否有任何已知的策略或模式或文献甚至可以指导我的链接?

预先感谢您的帮助。

最佳答案

我说:只要你的服务器空间没有用完,就让它保持原样。

Over the period, the system went on growing enough and now there are now over 10,000 campaigns already and over 500-1000 images per campaign.

→ 那是 5-10 百万行(在几年内创建)。
对于 SQL Server,这并不算多。
是的,我知道...我们谈论的是存储在数据库中的图像文件,而不是“常规”行。尽管如此,如果您的服务器具有合理大小的硬件,那应该并不重要。

我说的是工作经验,we have a SQL Server database which we use to store PDF files and images .
在我们的例子中,我们使用“常规”image 列 - 因为您使用的是 SQL Server 2008,您甚至可以使用 FILESTREAM (也许你已经这样做了,但我不知道 - 你没有说明你是如何将图像存储在数据库中的)
我们在 SQL Server 2005 上启动了该项目,当时 FILESTREAM 尚不可用。同时,我们升级到 SQL Server 2012,但从未更改存储文件的表中的数据类型。


如果您仍然喜欢创建一个单独的存档数据库并将旧数据移到那里,关于此的一条建议:

2) I was thinking of removing records from one database and cloning it in the other, however the identity column probably will not let me do that very seamlessly. (and I may be wrong too.)

[...]

4) If I just make the records blank(except for the identity) from the original database and copy it to the other with no identity constraint, probably it is not going to help and I think it will loose the purpose of the exercise.

您也不需要在存档数据库中将列设置为identity
只需保留主数据库中的所有内容,但从存档数据库中的主键中删除 identity 设置。
存档数据库永远不需要生成新 key (因此不需要identity),您只需从主数据库中复制具有现有 key 的行。

关于c# - 数据库关系记录存档和恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24232889/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com