AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题

问题[architecture](dba)

Martin Hope
myol
Asked: 2022-09-24 01:56:06 +0800 CST

动态添加列和插入数据

  • 0

请原谅这个问题的含糊不清,但数据库不是我的强项。

我的目标是使用 postgres 实现一个非常基本的文件元数据数据库。文件对于它们的相关元数据可能是唯一的,也可能不是唯一的。即一个 PDF 文件可以重复使用,但不同条目的元数据不同。

从对其他问题的基本阅读来看,我相信我至少想要三个表格,ID 加入其他表格。

Path (1 <-> n) ID (n <-> n) Metadata 

ID(如果这是一个问题,我可能会改变和之间的关系Metadata为一对多)

然而,有趣的是大多数元数据是事先不知道的。Metadata我想知道在更新请求上动态添加和填充表上的列是否可行。这将允许对元数据进行基本(如果非执行)搜索。

这甚至可行吗?还是使用了不同的更常见的模式,它们叫什么?

postgresql architecture
  • 1 个回答
  • 19 Views
Martin Hope
Jeremy Belolo
Asked: 2022-06-21 10:34:18 +0800 CST

日期 - 开始和结束与仅开始

  • 2

在我的数据库中,我有一个价格表。价格在一段时间内或永久有效,但在给定时间始终存在有效价格。

我想知道你是宁愿有一个starts_at和ends_at列,哪里ends_at总是等于前一个starts_at值,还是只starts_at在给定日期查询最后一个值?

我可以看到拥有between功能的好处,但另一方面,更新一行很麻烦,因为它可能会影响ends_at这里和那里的日期。

mysql architecture
  • 2 个回答
  • 28 Views
Martin Hope
Silent Boots
Asked: 2021-10-05 03:15:32 +0800 CST

关于 Oracle SGA 架构

  • 0

oracle dba 新手,

我想问一下共享池是如何工作的,特别是关于库缓存和结果缓存

例如会话问题

select empname from employee where emp_id=10

我发出类似的查询

select empname from employee where emp_id=20

我的服务器进程是否使用其他会话发出的已解析 sql 语句?

oracle architecture
  • 1 个回答
  • 32 Views
Martin Hope
Francesco Mantovani
Asked: 2021-02-13 14:12:18 +0800 CST

Star/Snowflake 数据库设计是否适合应用程序?什么是替代方案?

  • 0

我需要为一家制药公司解决一个练习,他们要求我根据一些信息从头开始创建一个数据库结构。

因为我希望它具有可扩展性且“面向未来”,所以我决定遵循该star/snowflake结构。现在它看起来比雪花更像明星,但想法就在那里。我有一个关于主事实表(研究)以及如何表示维度表状态的特定问题。

我想出了2个选项:

  • 选项 1:事实表研究> 外键 > 维度表合同> 外键 > 维度表状态。

所以我们通过两个维度表来表示事实表上的状态。我将通过 a JOINin aview或其他方式做到这一点...

在此处输入图像描述

  • 选项 2:事实表研究> 外键 > 维度表状态。

这样,我们将事实表(研究)直接链接到维度表状态。

在此处输入图像描述

我应该选择选项 1还是选项 2?

我害怕将太多维度表链接到事实表。这是我第一次尝试创建数据库结构。

欢迎任何建议,欢迎任何建议,尤其是来自经验丰富的数据库架构师和业余爱好者的建议。

谢谢

编辑:添加更多信息

谢谢@AntC 的提问。事实上,这根本不是一个数据仓库场景,而是一家制药公司需要一个新软件来跟踪他们的临床试验的场景。

但当然,最著名的模式是 Star/Snowflake,我不想使用任何分层模式。同时我想避免三角形、菱形、圆形之类的形状,因为即使现在只有 100 个用户知道这个数据库在 10 年后会是什么样子。这个想法是长期塑造一些东西,据我所知,我认为星形/雪花形状也适合正常应用。

relational-theory architecture
  • 1 个回答
  • 106 Views
Martin Hope
Gautam Kumar Samal
Asked: 2019-03-10 03:30:24 +0800 CST

大量db记录升级的架构设计

  • 1

老实说,这个问题的标题有点挣扎。这是交易。我在数据库中的各种表上有一组特定的数据库操作。从更简单的意义上说,这是一种迁移,我想在生产中推出,即在实时用户中推出。

所以,要求是我如何在不实际使用交易的情况下在交易中做到这一点?有一些假设,可能不正确,请随时帮我弄清楚。

  1. 我认为我们不能在数据库级别使用事务,因为这个过程可能会花费太长时间,有大约 1k 的独立操作可能需要验证记录的现有状态并更新它。
  2. 然后,如果出于任何原因,中间出现问题,我不想以部分执行的迁移结束。在另一个说明中,这感觉就像软件升级,当他们进行新版本更改并在出现问题时回滚。如果我严格基于此,我必须获取将受到迁移影响的当前记录,保留它们以用于恢复目的,然后应用迁移。如果有任何失败,请以相同的风险重新申请原始记录(一种恢复)。

涉及到服务器 (node.js) 和实时用户,这听起来风险更大并且更难控制整个事情。有什么关于架构级别的想法可以提供帮助吗?提前致谢!

更新

您是否期望事务将锁定表几秒钟或几分钟?可以分成小批量吗?

当您说它“需要太长时间”时,是否意味着它必须在业务需求的特定时间范围内完成,或者您担心它会阻塞表更新时间太长

是的,这可能需要很长时间,事实上,我们可以将该过程分成小批次。我们需要确保两件事。整个操作(甚至分成批次)本质上应该是交易。我并不真正关心它要花费的时间,相反,表/行将在这段时间内保持锁定状态,以防有人尝试某些东西。

sql-server architecture
  • 1 个回答
  • 63 Views
Martin Hope
Hammad
Asked: 2017-09-13 07:11:16 +0800 CST

多客户端 Web 应用程序的架构应该是什么?

  • 0

我的问题与特定技术无关,而与应该选择的设计方法有关。我的公司即将创建一个 Web 应用程序,其用户将是公司公司。该应用程序将存储所有注册/注册公司的数据,包括财务数据。从数据库的角度来看,我们不确定应用程序的架构应该是什么。

我可以想到两种方法:

  1. 具有相同代码库的所有公司的单一数据库。使用公司表标识公司。

  2. 每个公司的单独数据库具有相同的代码库,或者每个公司/客户可能是不同的代码库。

这两种方法都有其优点和缺点。如果使用单个数据库,则数据大小将快速增加,并且由于多个公司用户访问同一数据库的负载可能会遇到性能问题。这种方法的好处是模式很容易管理模式。另一方面,单独的数据库具有降低性能开销和公司数据隐私的好处。但困难的部分是需要在所有公司数据库中复制模式中的单个更改。

这些是我们所知道的。作为我们政策的一部分,我们不会将代码出售给公司/客户。他们只会购买许可证。

我们只对关系数据库感兴趣,不会使用 NoSQL。此外,客户/公司的数量将不受限制,可以增长到任意数量。

设计这种场景的数据库架构的更好方法是什么。我知道有成千上万的应用程序在开发之前可能会遇到这种情况,但这是我第一次 :)

所以真的很想你就什么是更好的方法提供意见。

非常感谢!

database-design architecture
  • 1 个回答
  • 3643 Views
Martin Hope
Saleem
Asked: 2016-09-06 08:21:03 +0800 CST

数据库架构:如果一个表是另一个表的一部分怎么办

  • 0

我的 SQL Server 数据库有一个名为 Lead 的初始表。该表包含有关领导者的各种信息。它有 3 个外键列:IndustryId、BusinessTypeId 和 ReferenceId。我在有关表 Lead 和 Reference 的体系结构中遇到问题。

这是表 Lead 的脚本:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Lead](
    [LeadId] [int] IDENTITY(1,1) NOT NULL,
    [LeadName] [nvarchar](100) NOT NULL,
    [CompanyName] [nvarchar](100) NOT NULL,
    [Phone] [nvarchar](50) NOT NULL,
    [Address] [nvarchar](max) NOT NULL,
    [DOB] [date] NULL,
    [IndustryID] [int] NOT NULL,
    [BusinessTypeID] [int] NOT NULL,
    [IsDeleted] [bit] NOT NULL CONSTRAINT [DF_Lead_IsDeleted]  DEFAULT ((0)),
    [ReferenceId] [int] NOT NULL,
    [IsLead] [bit] NOT NULL,
    [Email] [nvarchar](100) NOT NULL,
    [Website] [nvarchar](100) NOT NULL,
    [RepresentativeName] [nvarchar](100) NOT NULL CONSTRAINT [DF_Lead_RepresentativeName]  DEFAULT (''),
    [IsClosed] [bit] NOT NULL CONSTRAINT [DF_Lead_IsClosed]  DEFAULT ((0)),
    [feedback] [bit] NOT NULL CONSTRAINT [DF_Lead_feedback]  DEFAULT ((0)),
    [feedbackMemo] [nvarchar](100) NULL,
 CONSTRAINT [PK_Lead] PRIMARY KEY CLUSTERED 
(
    [LeadId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

ALTER TABLE [dbo].[Lead]  WITH CHECK ADD  CONSTRAINT [FK_Lead_LeadIndustry] FOREIGN KEY([IndustryID])
REFERENCES [dbo].[Industry] ([IndustryId])
GO

ALTER TABLE [dbo].[Lead] CHECK CONSTRAINT [FK_Lead_LeadIndustry]
GO

ALTER TABLE [dbo].[Lead]  WITH CHECK ADD  CONSTRAINT [FK_Lead_LeadReference] FOREIGN KEY([ReferenceId])
REFERENCES [dbo].[Reference] ([ReferenceId])
GO

ALTER TABLE [dbo].[Lead] CHECK CONSTRAINT [FK_Lead_LeadReference]
GO

ALTER TABLE [dbo].[Lead]  WITH CHECK ADD  CONSTRAINT [FK_Lead_LeadType] FOREIGN KEY([BusinessTypeID])
REFERENCES [dbo].[BusinessType] ([BusinessTypeId])
GO

ALTER TABLE [dbo].[Lead] CHECK CONSTRAINT [FK_Lead_LeadType]
GO

这是有问题的表的脚本参考:

SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

CREATE TABLE [dbo].[Reference](
    [ReferenceId] [int] IDENTITY(1,1) NOT NULL,
    [ReferenceName] [nvarchar](100) NOT NULL,
    [Address] [nvarchar](max) NOT NULL,
    [DOB] [date] NULL,
    [Memo] [nvarchar](max) NOT NULL,
    [IsDeleted] [bit] NOT NULL,
    [Phone] [nvarchar](100) NOT NULL,
    [DateTimeAdded] [datetime] NOT NULL,
    [AddedByUserId] [int] NOT NULL,
    [DateTimeUpdated] [datetime] NULL,
    [UpdatedByUserId] [int] NOT NULL,
 CONSTRAINT [PK_Reference] PRIMARY KEY CLUSTERED 
(
    [ReferenceId] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

问题是每个 Lead 都有一个 Reference,但 Reference 可能是一个 Lead。在添加新线索时的 UI 中,要求用户设置其引用,但他可以选择现有线索作为引用新线索的线索,也可以选择普通引用。

所以现在我不确定,设置这些表的最佳方法是什么?我应该将它们合并到一个表 Lead 中,当它是一个简单的 Reference 时,我将不需要的列保留为 Null,还是保留两个表并向 Reference 表“LeadId”添加一个新列而不使其成为外键?或者也许是另一种方法。请指教。

architecture table
  • 1 个回答
  • 42 Views
Martin Hope
James111
Asked: 2016-05-19 23:45:26 +0800 CST

Django Auth 用户以及自定义用户表?

  • 0

因此,我们使用 djangos 数据库身份验证已有一段时间了,最​​近决定要为我们的网站实施一个全新的登录系统。

我们保留了 django ORM,因为我们严重依赖它作为数据库建模工具。

无论如何,我问这个问题的原因是因为我们想保留 Auth_user 表,以便用户仍然可以使用管理面板!

所以基本上现在这就是用户注册时发生的事情:

  1. 注册 FB,我们获取他们的详细信息
  2. 我们将他们的 fb 详细信息插入到我们的新用户数据库表中
  3. 我试图找到将此用户表与 djangos Auth_user 表同步的最佳解决方案。

有任何想法吗?

mysql architecture
  • 1 个回答
  • 650 Views
Martin Hope
user20459
Asked: 2016-01-09 09:14:47 +0800 CST

具有 pgpool 架构的 Postgres

  • 9

下面是一个示例 pgpool 架构:

在此处输入图像描述

这意味着您只需要在单个服务器上拥有 pgpool;这是真的?当我查看配置时,我还看到您在其中配置后端pgpool.conf;所以它进一步暗示了这一点。但是,它并没有解释为什么我在后端服务器上也看到了 pgpool。

查看文档时,我还看到:

如果您使用的是 PostgreSQL 8.0 或更高版本,强烈建议在 pgpool-II 访问的所有 PostgreSQL 上安装 pgpool_regclass 函数,因为它是 pgpool-II 内部使用的。

所以我不知道该怎么想;如果在所有后端或仅在专用服务器上拥有 pgpool 是最佳做法?

postgresql architecture
  • 2 个回答
  • 3351 Views
Martin Hope
guest82
Asked: 2015-07-17 07:15:57 +0800 CST

如何存储时间序列数据

  • 25

我有一个我认为是一个时间序列数据集(如果我错了,请纠正我),它有一堆相关的值。

一个示例是对汽车进行建模并在旅途中跟踪其各种属性。例如:

时间戳 | 速度 | 行驶距离 | 温度 | ETC

存储这些数据的最佳方式是什么,以便 Web 应用程序可以有效地查询字段以查找最大值、最小值并随时间绘制每个数据集?

我开始了一种天真的方法来解析数据转储并缓存结果,这样就不必存储它们了。然而,在玩了一会儿之后,由于内存限制,这个解决方案似乎无法长期扩展,如果要清除缓存,那么所有数据都需要重新解析和重新缓存。

此外,假设每秒跟踪一次数据,很少有可能超过 10 小时的数据集,通常建议通过每 N 秒采样一次来截断数据集吗?

postgresql architecture
  • 2 个回答
  • 12876 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve