标签: data-modeling

Cloud Firestore深入获取子集合

假设我们有一个名为'todos'的根集合.

此集合中的每个文档都包含:

  1. title:字符串
  2. 子集合命名 todo_items

子集中的每个文档todo_items都有

  1. title:字符串
  2. completed:布尔值

我知道默认情况下在Cloud Firestore中查询很浅,这很好,但有没有办法查询todostodo_items自动获取包含子集合的结果?

换句话说,如何使以下查询包含todo_items子集合?

db.collection('todos').onSnapshot((snapshot) => {
  snapshot.docChanges.forEach((change) => {
    // ...
  });
});
Run Code Online (Sandbox Code Playgroud)

database data-modeling firebase google-cloud-platform google-cloud-firestore

58
推荐指数
1
解决办法
2万
查看次数

在为数据库设计关系时,为什么要避免循环?

有人告诉我,在数据模型中有循环是不好的设计.我曾经多次听过这个,但没注意到.例如,您有实体User,Project,Activity.项目由用户拥有,因此我们拥有从用户到项目的一对多关系.可以将活动分配给单个用户,这是从用户到活动的另一个一对多关系.当然,项目由一组活动定义,这是从项目到活动的另一个一对多关系.因此形成环.

我问这个家伙为什么设计不好但他告诉我他也不知道,他也被告知,猴子学习它是最好的.

我试过搜索,但我想我没有使用正确的单词,但在我看来这对于试图设计数据库的人来说应该是一个基础.

那么,任何人都可以向我指出一些有关er/db图中循环/循环的有用信息吗?

database database-design loops data-modeling entity-relationship-model

52
推荐指数
1
解决办法
2万
查看次数

在曲线上找到最佳权衡点

假设我有一些数据,我想在其上安装一个参数化模型.我的目标是为此模型参数找到最佳值.

我正在使用AIC/BIC/MDL类型的标准进行模型选择,这种标准可以奖励低误差的模型,但也会对高复杂度的模型进行惩罚(我们正在寻找对这些数据最简单但最有说服力的解释,可以这么说,奥卡姆的剃刀).

按照上面的说明,这是我得到的三种不同标准的例子(两个要最小化,一个要最大化):

AIC-BIC 适合

在视觉上你可以很容易地看到肘部形状,你会在该区域的某处选择一个参数值.问题是我正在为大量实验做这件事,我需要一种方法来找到这个值而不需要干预.

我的第一个直觉是尝试从角落以45度角绘制一条直线并继续移动它直到它与曲线相交,但这说起来容易做起来:)如果曲线有些偏斜,它也会错过感兴趣的区域.

关于如何实现这个或更好的想法的任何想法?

以下是重现上述一个图表所需的样本:

curve = [8.4663 8.3457 5.4507 5.3275 4.8305 4.7895 4.6889 4.6833 4.6819 4.6542 4.6501 4.6287 4.6162 4.585 4.5535 4.5134 4.474 4.4089 4.3797 4.3494 4.3268 4.3218 4.3206 4.3206 4.3203 4.2975 4.2864 4.2821 4.2544 4.2288 4.2281 4.2265 4.2226 4.2206 4.2146 4.2144 4.2114 4.1923 4.19 4.1894 4.1785 4.178 4.1694 4.1694 4.1694 4.1556 4.1498 4.1498 4.1357 4.1222 4.1222 4.1217 4.1192 4.1178 4.1139 4.1135 4.1125 4.1035 4.1025 4.1023 4.0971 4.0969 4.0915 …
Run Code Online (Sandbox Code Playgroud)

algorithm matlab data-modeling model-fitting

47
推荐指数
6
解决办法
2万
查看次数

前向链接与后向链接

另一个人没有在实践中有什么好处呢?我理解他们所做的事情,但他们在实际使用中的局限性和能力是什么?我正在考虑Drools vs一个新的AI项目的java prolog,但对其他建议持开放态度.在复杂的关系数据集或替代方案上进行推理有哪些流行的方法?

artificial-intelligence data-modeling drools prolog datalog

47
推荐指数
3
解决办法
6万
查看次数

实体属性值(EAV)的替代方案?

我们的数据库是基于EAV(实体 - 属性 - 值)模型设计的.那些使用EAV模型的人知道为了灵活性而附带的所有垃圾.

我向我的客户询问了使用EAV模型的原因(灵活性),他们的反应是:他们的实体随着时间而变化.因此,今天他们可能有一个具有一些属性的表,但在一个月的时间内,可能会添加一些新属性,或者可能会重命名现有属性.他们需要生成报告以回到任何阶段,并根据该阶段的实体形状查询数据.

我理解这对于传统的关系模型是不可行的,但我个人认为EAV是反模式的.是否有其他替代模型使我们能够捕获实体和实例更改的时间维度?

干杯,莫什

database database-design data-modeling entity-attribute-value data-structures

47
推荐指数
3
解决办法
2万
查看次数

为什么在存在其他唯一字段时使用自动递增主键?

我正在学习一门名为"数据库系统"的课程,对于我们的课程项目,我必须设计一个网站.

这是我创建的表的示例:

CREATE TABLE users
(
  uid INT NOT NULL AUTO_INCREMENT,
  username VARCHAR(60),
  passhash VARCHAR(255),
  email VARCHAR(60),
  rdate DATE,
  PRIMARY KEY(uid)
);
Run Code Online (Sandbox Code Playgroud)

教授告诉我"uid"(用户ID)完全无用且不必要,我应该使用用户名作为主键,因为没有两个用户可以拥有相同的用户名.

我告诉他我使用用户ID很方便,因为当我调用domain.com/viewuser?id=5之类的东西时,我只需检查参数:is_numeric($_GET['id'])......不用说他不相信.

由于我在大量教程中看到了user_id和其他类似属性(thread_id,comment_id等)并且查看了流行软件(例如vbulletin)的数据库模式,因此必须有很多其他(更强大的)原因.

所以我的问题是:你如何证明需要一个非空的自动递增id作为主键vs使用另一个属性如用户名?

sql database database-design data-modeling

47
推荐指数
4
解决办法
8805
查看次数

为什么很多人将Cassandra称为面向列的数据库?

在互联网上阅读几篇论文和文档,我发现了很多关于Cassandra数据模型的矛盾信息.有许多将其识别为面向列的数据库,其他作为面向行的数据库,然后将其定义为两者的混合方式.

根据我对Cassandra如何存储文件的了解,它使用*-Index.db文件访问*-Data.db文件的正确位置,在该文件中存储了bloom过滤器,列索引,然后是列的要求的行.

在我看来,这是严格的行导向.有什么我想念的吗?

data-modeling column-oriented cassandra nosql

47
推荐指数
5
解决办法
2万
查看次数

什么mysql数据库表和关系将支持带有条件问题的Q&A调查?

我正在研究一个相当简单的调查系统.数据库模式将很简单:一个Survey表,与Question表的一对多关系,与Answer表和表的一对多关系PossibleAnswers.

最近,顾客意识到她希望能够只向那些对前一个问题给出一个特定答案的人展示某些问题(例如,你是否购买了香烟?接下来是你最喜欢的卷烟品牌?),没有必要问第二个问题向非吸烟者提问).

现在我开始想知道在我的数据库模式方面实现这个条件问题的最佳方法是什么?如果question A有2个可能的答案:A和B,以及question B应该只出现一个用户,如果答案是A

编辑:我正在寻找的是一种在数据库中存储有关需求的信息的方法.数据的处理可能在应用程序端完成,因为我的SQL技能很糟糕;)

sql database-design erd data-modeling database-schema

43
推荐指数
4
解决办法
4万
查看次数

在数据库中表示"重复事件"的最佳方法是什么?

我正在尝试在C#中开发一个与调度程序和日历相关的事件应用程序,其关键要求是表示数据库中的重复事件.表示数据库中重复事件的最佳方法是什么?

更多细节:

在创建活动时,我也向某些用户发送邀请,并且只允许被邀请者在指定的窗口(会议持续时间)内登录会议,或者可能在被邀请者尝试登录时拒绝登录,比如5分钟前预定的会议开始.

c# sql database-design data-modeling

43
推荐指数
3
解决办法
2万
查看次数

您是否使用聚苯乙烯泡沫塑料球来模拟您的系统?

[目的-C]

您是否仍然使用聚苯乙烯泡沫塑料球来模拟您的系统,每个球代表一个类?

汤姆爱:实际上,我们这样做.我们还完成了它的3D动画版本,我们发现它远不如聚苯乙烯泡沫塑料球那么有用.在开发项目中间的天花板上悬挂着一个物理的,显眼的结构,它定期更新,不仅提供您正在构建的系统的结构,还提供每个类的当前状态.

我们最后一次计算时,我们已经完成了19个项目.其中一个是1,856个班级,这很大 - 实际上,可能比它应该更大.这是一个很大的商业项目,所以它需要有点大.

编程的主人


这是我第一次阅读或听说过使用聚苯乙烯泡沫塑料球来模拟课程.
这是一种常用的技术吗?而且,这种建模如何帮助我们更好地设计系统?

如果您有任何可以分享的照片,可以向我们展示如何表示课程,那就太棒了!


更新:所以,似乎大多数人使用的材料是纸.聚苯乙烯泡沫塑料球实际上是古怪的,不是常用的技术.

值得注意的技巧:


谢谢大家的非常好的答案.

data-modeling

43
推荐指数
4
解决办法
1834
查看次数