我正在做一个处理结构化文档数据库的项目。 我有一个类别树(〜1000个类别,每个级别最多〜50个类别),每个类别包含数千个(最多约10000个)结构化文档。 每个文档都是几千字节的数据(我更喜欢YAML,但也可能是JSON或XML)。 这个系统的用户执行几种types的操作: 通过ID检索这些文件 通过内部的一些结构化属性来search文档 编辑文档(即添加/删除/重命名/合并); 每个编辑操作都应该logging下来,并附带一些注释 查看logging的特定文档更改的历史logging(包括查看谁更改了文档,何时更改以及为什么更改文档,获取更早的版本 – 如果需要,可能还原为这一版本) 当然,传统的解决scheme是使用某种文档数据库(比如CouchDB或者Mongo)来解决这个问题 – 然而,这个版本控制(历史)的东西引起了我一个疯狂的想法 – 为什么我不应该使用git仓库这个应用程序的数据库后端? 乍一看,可以这样解决: category =目录,document =文件 通过ID获取文档=>更改目录+读取工作副本中的文件 用编辑注释编辑文档=>由各种用户进行提交+存储提交消息 历史=>正常的git日志和旧的交易的检索 search=>这是一个稍微棘手的部分,我想这将需要一个类别定期导出到关系数据库索引的列,我们将允许search 这个解决scheme还有其他常见的缺陷吗? 有没有人试图实现这样的后端(即任何stream行的框架 – RoR,node.js,Django,CakePHP)? 这个解决scheme是否对性能或可靠性有任何可能的影响 – 也就是说,git会比传统的数据库解决scheme慢得多,否则就会有可扩展性/可靠性的缺陷? 我认为,推送/拉对方存储库的这种服务器集群应该相当健壮和可靠。 基本上,告诉我, 如果这个解决scheme将工作, 为什么会或不会做?
我习惯于使用像MySQL或PostgreSQL这样的关系型数据库,并结合了像Symfony,RoR或者Django这样的MVC框架,我认为它很好用。 但最近我听说很多关于MongoDB的非关系数据库,或者引用官方的定义 , 一个可扩展的,高性能,开源,无模式,面向文档的数据库。 我真的很感兴趣,希望知道下一个项目的所有选项,并select最好的技术。 在哪些情况下使用MongoDB(或类似的数据库)比使用“经典”关系数据库更好? MongoDB与MySQL的优势有哪些? 或者至less,为什么它是如此不同? 如果您有指向文档和/或示例的指示,那也是非常有帮助的。
我不认为我是唯一一个想知道这个的人。 你通常对数据库行为做什么? 你喜欢从物理数据库中删除一条logging吗? 或者只是用“已删除”标志或布尔列标记logging来表示logging处于活动状态还是非活动状态?
我刚刚安装了SQL Server 2012 Express ,我可以从VS2012RC连接数据库。 数据库正在工作:)我使用Win7 SP1 64bit 。 我从页面下载程序,我selectENU\x64\SQLManagementStudio_x64_ENU.exe 我想安装Management Studio 2012 ,但在解包安装程序停止后。 我只看到了一些控制台应用程序。 可能是什么原因? 我在哪里可以find任何日志文件?
如果你要激励你为什么要使用ORM来pipe理/客户的“优点”,原因是什么? 尝试并保持每个答案的一个原因,以便我们可以看到被投票的最佳理由
听着Scott Hanselman对Stack Overflow团队的采访( 第1部分和第2 部分 ),他坚持认为SQL服务器和应用程序服务器应该在不同的机器上。 这只是为了确保如果一台服务器被攻破,两个系统都不可访问? 安全问题是否超过了两台服务器的复杂性(额外的成本,两者之间的专用networking连接,更多的维护等),特别是对于一个小型应用程序,哪个部件都没有使用太多的CPU或内存? 即使有两台服务器,一台服务器被攻破,攻击者仍然可能会造成严重的破坏,无论是删除数据库,还是搞乱应用程序代码。 如果性能不是问题,为什么会这么大?
传统观点认为存储过程总是比较快。 所以,因为他们总是更快,使用他们所有的时间 。 我很确定这是以一度历史背景为基础的。 现在,我不主张存储过程是不需要的,但是我想知道什么情况下存储过程在MySql,SqlServer,Oracle等现代数据库中是必需的。 所有通过存储过程访问是矫枉过正的吗?
我正在寻找一个图书馆或数据库,可以根据他或她的名字或昵称提供一个人是男性还是女性的猜测。 就像是 john => "M", mary => "F", alex => "A", #ambiguous 我正在寻找一些支持英文名称以外的名称(如日文,印度文等)。 在我得到另外一个答案之前,“你要冒犯他人的性别/性别”让我明白,我的申请不会与任何人交stream。 它不会发送电子邮件或联系任何人。 有没有用户问。 在很多情况下,这个人是死的,我唯一的信息是姓名,出生date和死亡date。 我想知道个人的性别的原因是为了使输出更好的语法,并帮助可能来自后者的search。
你什么时候使用一般? 例如,非常鼓励! 我指的是如此MySql,但不能想象在另一个DBMS上的概念是不同的
我有一个现有的数据表。 有没有办法添加主键而不删除和重新创build表?