我现在正在制作一个银行系统数据库,在帐户实体的情况下,将其作为外键(分支机构 ID、客户 ID、服务 ID、四个生成的整数)的主键组合,用于贷款等上下文服务,或者使它们仅为普通外键。如果您可以提供一个更一般的案例,其中复合键是最佳用例
为什么这么多人喜欢列式数据库?据我了解,人们更喜欢列式数据库,因为 CPU 能够可预测地缓存下一个值,因此查询速度更快。
如何在Flutter中创建唯一的id以添加到firebase中的数据库中?
在数据存储方面,我是个新手,想学习一些技巧。
我想知道如何在 RDBMS 和 NoSQL 存储之间做出选择。
让我们举一个数据量相当大(比如 TB)的系统的例子。而且我们还需要强一致性,而且还需要低延迟。
考虑到数据大小,NoSQL 可能比较合适,但出于一致性原因,RDBMS 类型可能看起来不错。但高一致性意味着低延迟。
尽管一些 RDBMS 也提供分片来解决大数据问题,但延迟仍然是一个问题。
我们如何权衡所有这些利弊来做出决定?
此外,来自初学者 POV 的有关此主题的任何资源可能会有很大帮助。
数据
假设我有一个网格,代表房间里的所有人以及他们彼此交谈时的对话。
约翰 | 苏珊 | 布莱恩 | 雷切尔 | |
---|---|---|---|---|
约翰 | 放心 | 工作 | 运动的 | 电影 |
苏珊 | 工作 | 咕哝着 | 旅行 | 音乐 |
布莱恩 | 运动的 | 旅行 | 没有什么 | 食物 |
雷切尔 | 电影 | 音乐 | 食物 | 自嘲 |
数据库
最初我考虑只制作一个常规表格People
和Conversations
桌子Conversations
是一把钥匙,topic
participant1
participant2
困境
参与者的顺序完全无关。一个简单的问题“Rachel 和 Brian 谈论什么”变成了一个需要运行的复杂查询。
因此必须做以下两件事之一:
- 冗余数据添加到数据库中:(Rachel 和 Brian)或(Brian 和 Rachel)
- 查询非冗余数据需要一个极其复杂的查询,因为您不知道 Rachel 是参与者1还是参与者2。
采用上面的 1 会创建一个不可持续的 O(n^2) 数据库模型,而 2 似乎是 DBA 试图查询有意义的数据的噩梦。
问题
如何对这样的数据结构进行建模?SQL 是否是适合这项工作的工具,还是我应该完全研究其他东西?
我使用以下信息创建了概念数据模型和物理数据模型:
概念数据模型:
物理数据模型:
我希望“购买”有很多“门票”。例如,如下所示:
(PurchaseID, TicketID)
( 1 1 )
( 1 1 )
( 1 2 )
( 1 2 )
这可能对应于“一次购买 4 张门票,2 张一种门票和 2 张另一种门票” )
如何才能正确建模?
这是停车场面试问题的一部分,要求候选人设计停车场系统。停车场的设计实体是一个值得讨论的问题。但我被困在我们必须为车辆分配停车位的部分。
假设我们正在使用外部数据存储来实现停车场问题。并且有很多并发请求,请求停车位。最基本的实现是,
为每个停车位创建单独的数据库行,列可用性为真/假。
每当车辆到来时,找到一个可用的插槽(假设插槽 ID X)
使用乐观锁定将 DB 的可用性更新为 false(即,如果 slotid=X 且可用性 =false 则更新)
上述方法在高并发场景中效果不佳,因为可能会为多个车辆分配相同的槽位,并且步骤 3 对于所有这些车辆都会失败,我们必须从步骤 2 再次重试。
为了最佳地处理这个问题,我应该合并步骤 2、3 并将分配卸载到数据库本身。新流程应如下所示
- 为每个停车位创建单独的数据库行,列可用性为真/假。
- 每当车辆到来时,都会触发 SQL 查询来查找行并将可用性更新为 false。并将slotid归还给车辆?
在 SQl DB 中可以这样做吗?是否有其他方法来实现此功能。
我目前正在学习一个关于数据库开发的单元,我正在学习一个关于规范化的模块,我相信这个ERD已经完成了第二种形式的规范化,因为每个表都有一个主键,所有数据都是原子的,并且没有重复的组,并且我不认为存在任何部分关键依赖性。但我是新人,理解还很薄弱。所以我想知道是否有人可以看看并让我知道他们的想法以及可能的任何帮助,我将不胜感激。
编辑:我不确定是否要抓取 PostCodeAndCity 表并将城市数据包含在地址表中,但是我的学习材料建议这样做。
编辑2:由于创建了这个问题的帐户,我没有声誉来支持你的答案,但我只是想感谢所有花时间分享你的知识的人,我真的很感激它,它进一步提供了帮助我的大大!