Questions tagged «database»

该标签用于一般数据库问题。如果您对SQL有疑问,请改用该标记。

8
在数据库中存储地理地址/位置的通用方法是什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 什么是地理地址/位置的正确格式,最适合地球上的任何地址?目前,我有: 国家 市 街 数 文本数据(为简单起见) 压缩 纬度/经度 但是我相信我可以改善它:一个国家或地区或地区之类的东西。或在新加坡或香港没有区域/地区/州。 可能没有街道,但道路,林荫大道或其他东西。许多建筑物可能是复合的。可能有地板。房间号。等等....

6
数据库和单元/集成测试
我曾与某人讨论过Web应用程序的单元/集成测试,但我对1个核心思想存在分歧。问题是我正在谈论的人认为,单元测试工作所在的数据库应该在其中预先填充数据,并且我认为在执行测试之前和之后它应该完全为空。 我对数据库中预先填充的数据的担心是,无法确保数据保持良好状态。测试本身将要在数据库中创建,删除和修改数据,因此我真的看不到在开始测试之前在数据库中存储数据是一件好事。 似乎最好的测试数据库功能的方法是进行以下设置: 在测试实际运行之前的“设置”阶段,您首先要截断数据库中的所有表 然后,插入将要运行的测试用例所需的所有数据 然后运行并验证测试用例 然后在“拆卸”阶段,您再次截断数据库中的所有表 我没有其他更好的方法来确保要测试的数据是可以测试的好数据。 我在这里想念什么吗?这不是测试数据库相关功能的最佳方法吗?始终存在于数据库中的预填充数据库是否有好处(即使在开始测试之前或在测试完成之后)?对想法进行不同解释以更好地阐明我的观点的任何帮助也将是很棒的(也就是说,如果我的观点是有价值的)。

1
雷迪斯vs Zookeeper
考虑到这两个服务器的用途完全不同,将它们进行比较似乎很愚蠢。但是,如果您考虑一下,他们可以做很多类似的事情:存储配置数据,分布式锁定,排队等。 我有一个Redis实例,该实例用于一些与生产相关的事情,但是想在服务器之间进行一些简单的同步(大多数配置更改不需要推升代码,也不需要在服务器之间进行简单锁定)。什么是动物园管理员给我的Redis不会?


3
双向同步的冲突解决
假设连接并不总是可用的,您如何管理“主”数据库服务器和许多“辅助”服务器之间的双向同步,特别是解决冲突? 例如,我有一个移动应用程序,该应用程序使用CoreData作为iOS上的“数据库”,并且我希望允许用户在没有Internet连接的情况下编辑内容。同时,此信息可在设备将连接到的网站上找到。如果/当两个数据库服务器上的数据发生冲突时,该怎么办? (尽管我知道CoreData有点不同,但我将其称为DB服务器。) 是否有处理此类问题的一般策略?这些是我可以想到的选项: 1.始终将客户端数据用作更高优先级 2.与服务器端相同 。3.尝试通过标记每个字段的编辑时间戳并进行最新编辑来解决冲突。 尽管我敢肯定,第三个选项会为破坏性的数据破坏打开空间。 我知道CAP定理与此有关,但是我只想最终保持一致,所以不能完全排除它,对吗? 相关问题:双向数据同步的最佳实践模式。对这个问题的第二个回答说,这可能无法完成。


4
在两个不同数据库之间同步数据的最佳方法
我必须在结构完全不同的两个大型数据库之间实现数据同步。基本上,我需要获取有关第一个数据库中不同表中产品的一些数据,并将它们重新排列为第二个数据库中的其他表。 第一次创建我的产品并不是很复杂。但是我正在寻找一种方法来更新有关每种产品的某些特定数据,而不是所有数据。 显然,有一些问题使这个问题变得棘手。 除了选择查询,我不允许对源数据库执行任何操作。 在目标数据库上,我可以执行常规查询(选择,更新,插入,创建),但不能修改现有的结构/表。 目标数据库和源数据库的结构完全不同,表根本不一样,因此,实际上必须重新排列数据-比较表将无法工作。 目标数据库使用MySQL服务器-源可能是DB2。 任何地方都没有“更新时间”字段。 因此,整个过程需要在单个Python(理想情况下)脚本中完成。 我考虑根据要在目标数据库中更新的字段为每个产品创建一个哈希:md5(代码+描述+供应商+大约10个其他字段)。每天都会从源数据库中创建基于相同数据的新哈希。我将所有散列存储在一个表(项目代码,current_hash,old_hash)中,以提高性能。然后,如果新哈希与旧哈希不同,则比较并更新产品。 大约有50万种产品,所以我有点担心性能。 这是个好方法吗?

6
从SQL迁移到NoSQL会以什么大小的数据受益?
作为关系数据库程序员(大部分时间),我阅读了有关关系数据库如何不扩展以及MongoDB等NoSQL解决方案如何扩展的文章。由于到目前为止我开发的大多数数据库都是中小型的,所以我从来没有遇到过一些索引,查询优化或模式重新设计尚未解决的问题。 我希望看到MySQL会遇到什么样的大小。多少行? (我知道这将取决于应用程序和存储的数据类型。让我知道的一个东西基本上是遗传学数据库,因此将有一个主表,带有3或4个查找表。主表将在其中包含其他内容,例如染色体参考和位置坐标。很可能会查询到染色体上两个药水之间的许多条目,以查看其中存储了什么。

7
安全修复生产数据库数据
会发生错误,有时必须在生产中修复数据。从大公司的角度来看,最安全的方法是什么?有没有可以帮助的工具?以下是推动此要求的一些注意事项... 我们需要记录谁运行了查询以及他们运行了什么 理想情况下,我们需要授予该人员访问权限,使其只能在短时间内针对感兴趣的表运行查询 无论正在运行什么查询,都需要对此有一些技巧,以防止长时间运行和锁定SQL未经明确许可而运行 此过程需要与DB无关,或者至少了解DB2,Oracle和SQL Server。 我们正在努力减少因执行“错误的事情”而进行临时产品修正查询的风险,同时在此过程中增加一些安全性/听觉性。有想法还是想法?
23 database  risk 

12
在关系数据库中存储xml有什么优势?
我AdventureWorks数据库今天闲逛,我注意到,一些表(HumanResources.JobCandidate并 Sales.Individual举例)具有被存储XML数据的列。 我要知道的是,基本上将数据库表行的数据存储在另一个表的列中的优点是什么?这是否使查询这些信息变得困难?还是假设不需要查询数据而只需要存储数据?
23 design  database  xml 

11
在数据库中为某些表创建辅助主键
我想在我的某些表中添加“ second_primary_key”,这将是uuid或一些随机的长键。我需要它,因为对于某些表,我不想向我的Web应用程序公开整数。也就是说,在页面“ / invoices”上,我有一个发票列表和一个指向“ / invoices /:id”的链接,其中:id是整数。我不想让用户知道我的系统中有多少张发票,因此我想使用其“ second_primary_key”代替“ / invoices / 123”,从而使URL为“ / invoices / N_8Zk241vNa” 我要隐藏真实ID的其他表也是如此。 我想知道,这是常见的做法吗?实现此目的的最佳方法是什么? 到底该技术叫什么,以便我对此进行搜索?

7
在数据库中使用位掩码的优缺点
不久前,我与同事交谈,他绝对反对使用位掩码,因为很难理解存储在数据库中的所有值。我认为使用它们(例如确定当前用户的角色)并不总是一个坏主意。否则,您需要将其存储在单独的表中,这将导致另一个JOIN。如果我错了,你能告诉我吗?使用位掩码还有其他副作用,优点/缺点吗?


9
在敏捷开发中,我应该在数据库之前尝试在平面文件中进行持久化吗?
有人向我解释说,由于在敏捷开发中,策略和应用程序逻辑应该比持久性方法之类的细节更为重要,因此持久性决策应该在最后做出。因此,从简单的持久性(例如平面文件)开始可能是一个好主意,直​​到我们意识到该方法的弱点显而易见,然后才更改持久性(例如,使用关系数据库)。 这是真的吗?还是我误解了这个概念?这是敏捷团队通常如何构建应用程序吗?有什么理由?何时不应该采用这种方法?

3
如何存储有生效日期的价格?
我有一个产品清单。每个都由N个提供者提供。 每个提供商都为我们提供特定日期的价格。该价格一直有效,直到该提供商决定设置新价格。在这种情况下,提供商将使用新日期给出新价格。 MySQL表标头当前看起来像: provider_id, product_id, price, date_price_effective 每隔一天,我们会汇总当天有效的产品/价格列表。对于每种产品,该列表包含具有该特定产品的提供者的排序列表。这样,我们可以从碰巧提供最佳价格的任何人那里订购某些产品。 为了获得有效的价格,我有一条SQL语句返回所有具有的行date_price_effective >= NOW()。该结果集由ruby脚本处理,该脚本进行必要的排序和过滤以获取如下所示的文件: product_id_1,provider_1,provider_3,provider8,provider_10... product_id_2,provider_3,provider_2,provider1,provider_10... 对于我们的目的来说,这很好用,但是我仍然觉得SQL表可能不是存储此类信息的最佳方法。我感到这种问题以前已经以其他更具创造性的方式解决了。 除了在SQL中,还有其他更好的方法来存储此信息吗?或者,如果使用SQL,是否有比我正在使用的方法更好的方法?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.