问题标签 [data-storage]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - 如何将这些字段描述存储在mysql中?
为这个冗长的话题道歉,我不打算让它这么长,但这是我一直遇到的一个非常简单的问题。:)
假设您有一个名为的简单表tags
,其中包含列tag_id
和tag
. tag_id 只是一个自增列,而 tag 是标签的标题。如果我需要添加一个描述字段,平均大约 1-2 段(最多大约 3-4 段),我应该简单地向表中添加一个描述字段还是应该创建一个名为 tag_descriptions 的新表并存储带有 tag_id 的描述?
我记得读过最好这样做,因为如果您执行不选择描述的查询,该描述字段仍然会减慢 mysql。这是真的?我什至不记得我从哪里读到的,但我已经追了几年了……最后我怀疑我是否需要这样做,我有一种感觉,我不需要。每当您需要描述字段时,您还需要进行内部连接。
我的另一个问题是,创建最多只能容纳很少行的新表通常是不好的吗?如果这些数据不适合其他任何地方怎么办?
我在下面有一个与这两个问题有关的简单案例。
我有三个表内容、标签和 content_tags,它们构成了多对多关系:
内容
- content_id
- 区域(具有大约 6-7 个不同值的枚举列,以后很可能不会增长)
标签
- tag_id
- 标签
内容标签
- content_id
- tag_id
我想为每个标签存储大约 1-2 段的描述,但也为每个区域存储。我想知道最好的方法是什么?
选项 A:
- 只需在标签表中添加描述列
- 为 region_descriptions 创建一个新表
选项 B:
- 创建一个名为 descriptions 的新表,其中包含以下字段:id、description 和 type
- id 将是内容的 id 或枚举字段的 id
- 类型是标签描述还是区域描述(将使用枚举列)
也许在 id 和 type 上有一个主键?
选项 C:
- 为 tag_descriptions 创建一个新表
- 为 region_descriptions 创建一个新表
如果添加描述列不会减慢不需要描述的 mysql 选择查询,选项 A 似乎是一个不错的选择。
假设描述列会减慢 mysql,选项 B 可能是一个不错的选择。它还消除了对仅包含 6-7 行来保存区域描述的小表的需要。虽然现在我想起来了,如果最初要获得区域描述,那么连接到这个表会很慢,你只需要经过很少的行。
如果描述列会减慢 mysql 的速度并且如果像区域描述这样的小表无关紧要,选项 C 将是理想的。
也许这些选项都不是最好的,请随时提供其他选项。谢谢。
PS 什么是理想的列类型,用于保存通常 1-2 段的数据,但有时可能会更多?
mysql - 为什么 MySQL unix 时间在 32 位无符号整数限制以下停止?
第一个字段是我可以给出的最高值FROM_UNIXTIME
。下一个字段是那个值加上一个返回的值NULL
。第三个字段是无符号 32 位 int 的最高可能值。最终值是可能的最高 UNIXTIME 和可能的最高 int 之间的差值,即 18 天多一点的秒数。它似乎2037
在本地时区结束时停止。任何想法为什么?这是其中一个计算中的自然转折点吗?这只是一个任意限制mysqld
吗?
web-applications - 允许将用户数据存储在服务器和用户 PC 上的技术?
让我先更好地解释一下上下文。应用程序应具有以下特征:
- 只读共享数据位于 Internet 上的数据库服务器上。(相当大量的共享数据。)
- 应用程序应该以类似 Java-Web-Start 的方式分发,或者是一个 Web 应用程序。(目标是简化主包和更新的分发。降低服务器负载并为最终用户提供更好响应的解决方案是首选。)
- 必须可以仅在服务器上、仅在用户的 PC 上或在两者上存储用户特定的数据。(这样做的原因是大多数用户不愿意冒险将他们的信息从他们的 PC 中取出,但他们中的一些人愿意分享部分信息或进行备份。)
我对Web应用程序编程不是很了解。我所知道的唯一可以实现这一切的技术是 Java Web Start。它消除了服务器的负载,因为大多数计算都是在用户端完成的,允许在用户的 PC 上读/写(给定访问权限)并且访问集中式数据库不是问题。
我想知道是否有其他技术可以开发这样的应用程序并且不需要传统的本地安装。
非常感谢,
乔丹
c++ - 小型个人应用程序的最佳数据存储方法(SQL 数据库、XML 或其他文件类型)
我在这里对 SO 进行了一些研究,但还没有找到我真正需要的东西。我目前正在学习 C++,以帮助我的公司将 MSSQL Delphi 驱动的应用程序转换为 C++。为了帮助促进我的学习,我正在为我的家庭使用个人应用程序。因为我真的不认为我需要数据库的力量,所以我正在寻找其他方法来存储数据。如果您知道该程序将做什么,它可能有助于回答我的问题。
它是什么:家庭预算、医疗和计划申请。
我想用它做什么:而不是以无组织的方式将预算电子表格、PDF 医疗文档和其他面向家庭的数据保存在拇指驱动器上。我想构建一个具有多种工具的前端。
我希望能够存储和访问一般个人信息、完整的家庭医疗记录(包括糖尿病跟踪工具,例如每日葡萄糖数量和递送的胰岛素)、预算信息、当前/历史账单信息(帐号、应付金额、支付,到期日期等)数据以及我能想到的任何其他使我的个人数据更有条理的东西。我还计划能够打印报告并为这些数据制作图表。我可能希望加密数据,但目前我不确定。
现在我知道一个实际的 sql、mysql 或进度数据库对于这个项目来说绝对没问题,但是我真的希望使用其他可能更小更简单的东西。XML 会是一个有效的选择吗?是否有其他文件类型可用于存储所有数据。我正在寻找一个占用空间小、访问速度快且能够对数据执行“按摩”的能力。
c++ - 关于我的数据存储问题的意见(数据库/自制解决方案)
我有非常简单的结构化数据,目前以自制文件格式存储,但我想知道我们是否应该迁移到更现代的东西。数据只是一个 s 的表,由一列double
索引。double
我需要执行的事情是:
- 遍历表。
- 插入和删除任意记录。
- 在给定键值之前和之后选择给定数量的行(其中键可能不在数据库中)。
要求是:
- 存储必须是基于文件的,没有服务器。
- 不必将整个文件读入内存。
- 生成的文件应该可以在不同的体系结构之间移植(wrt endian-ness ...)
- 必须是一个非常稳定的项目(数据非常关键)。
- 必须在 Solaris/SPARC 上运行,最好还可以在 Linux/x64 上运行。
- 访问时间应尽可能快。
- 必须作为 C++ 库提供。Fortran 和 Python 绑定的奖励积分 :)
- 可选的比双精度精度更高的数字表示将是一个奖励。
- 相对紧凑的存储空间也将是一个好处。
根据我有限的经验,sqlite将是一个有趣的选择,或者如果 sqlite 不够快,则可能是非服务器模式下的mysql 。但也许一个成熟的 SQL 数据库是矫枉过正的?
你有什么建议?
windows - 支持语法的 ASN1 查看器?
有人可以向我推荐一个免费的ASN.1 查看器,它还支持加载语法文件 (.asn) 以格式化输出。
我正在使用免费版本的 ASN1VE,这很好,但我必须付费才能加载语法。
谢谢!
F。
enums - NoSql:枚举与字符串
只是好奇其他人如何处理枚举和 nosql?将属性存储为枚举值还是字符串更好?在某些情况下,这会影响数据库的大小或性能吗?例如,想想,比方说,一个职业运动员......他的运动类型可能是足球,曲棍球,棒球,篮球等......字符串与枚举,你们怎么看?
redis - 在 Redis 中存储大量类似项目的随机列表
Redis 2.0.3
我需要在 Redis 中存储大量项目。每个项目都是一个短字符串(少于 256 个字符)。
我需要对列表做两个操作:
添加许多(几千到一百万)相同的项目。(一天几次)
从列表中随机删除一项。没有必要有“公平”的随机性。任何“足够好”的方法都可以。(每秒最多数百次)
我没有足够的 RAM 将所有项目一一存储在列表中。
我认为我需要分批存放物品,名称和柜台。(将有多达数千个不同的项目,更多的是数百个。)
但我不确定如何有效地组织这个。
有什么提示吗?
php - 在 PHP 中存储一些数据的无数据库方法
我是 PHP 新手,但一般不会编程。我想存储一些从 Web 服务中检索到的数据,但我不认为我需要一个数据库。首先,数据会更新得非常频繁,而且它的大小总是小于 1MB。在 Apache 上的 PHP 中最好、快速但有效的方法是什么?注意:我使用的是托管服务提供商,所以我不喜欢自定义安装。也许,单身?谢谢
c# - 将图像作为二进制数据存储在数据库中
以二进制格式将图像存储在数据库中的最佳方法是什么,以及如何使用 C# 实现它?