是否有开源元数据管理解决方案?我想创建一个元数据存储库,它将保存数百个企业数据库的数据库模式、表和数据项的元数据的详细信息。
我对可以自动查询数据库模式数据以便能够跟踪与表相关的元数据更改的东西特别感兴趣。即更改列数据大小、添加的表和列等。
我正在设计我的第一个电子商务模式。我已经阅读了一段时间的主题,并且对 anorder_line_item和 a之间的关系感到有些困惑product
一个product可以被购买。它有各种细节,但最重要的是unit_price。
Anorder_line_item有一个外键,指向product_id购买的、quantity购买的和unit_price客户购买产品的时间点。
我读过的大部分内容都说应该明确添加unit_priceon order_line_item(即不通过 引用product_id)。有道理,因为商店将来可能会改变价格,这会弄乱订单报告、跟踪、完整性等。
我不明白的是,为什么直接将unit_price值保存到order_line_item?
创建一个记录unit_pricea 更改的审计/历史表不是更好product吗?
当order_line_item被创建,所述的外键product_audit表,并将该价格可以从那里检索(通过引用)。
在我看来,使用这种方法有很多好处(减少重复的数据、价格变化历史等),那么为什么不更频繁地使用它呢?我还没有遇到使用这种方法的电子商务模式的例子,我错过了什么吗?
UDPATE:我的问题似乎与Slowly Changed Dimension 相关。我仍然感到困惑,因为缓慢变化的维度与数据仓库和 OLAP 相关。那么,缓慢变化的维度类型可以应用于我的主要业务事务流程数据库 (OLTP) 吗?我想知道我是否混合了很多概念,非常感谢一些指导。
我是创建数据库的新手,这个错误让我目瞪口呆,因为我是数据库管理方面的新手(我主要做报告类型查询)。我通过 pgAdmin3 GUI 创建了一个新数据库,我正在尝试使用 SQL 在其中创建 DB 对象,但得到了一个:
Run Code Online (Sandbox Code Playgroud)ERROR: relation "replays" does not exist SQL state: 42P01
我浏览了手册,但没有发现任何有用的东西,尽管我怀疑它可能与search_path某种方式有关。这是一个屏幕截图。知道我做错了什么吗?

我正在尝试建立一个医生预约系统,在线患者将有两个选择:
约束:
到目前为止我们完成的模型是基于创建一个如下所示的 Doctor Slot 表

如果 DoctorSlot 为 N 且 N=10 分钟,请考虑以下示例
案例 第一次 if(N*2)== Free 保留块两个插槽而不是一个
案例跟进 if(N)==Free Make Reservation Block 1 slot
示例医生:9:00 至 9:10 医生:9:10 至 9:20 医生:9:20 至 9:30
病例首次向患者展示 9:00 至 9:20
挑战:
问题:
我正在设计一个棒球模拟程序,但在设计 boxscore 模式时遇到了问题。我的问题是我想跟踪每局得分的次数。我在实际程序中这样做的方法是使用一个动态数组,该数组随着每局比赛而增长。
对于那些不熟悉棒球比赛的人来说,比赛通常是九局,除非比赛在第 9 局结束时仍然打平。因此,棒球比赛的长度不确定,这意味着我不能将数据库设计为每局得分只有 9 列(技术上是 18(9 局 * 2 队)。我的一个想法是序列化数组并将其编码为 Base64,然后再将其存储在数据库中。但是,我不知道这是否是一种很好的技术,我想知道是否有人有更好的主意。
如果重要,我正在开发的数据库是 PostgreSQL。
任何建议都非常感谢!谢谢!
我的组织正计划采用 SQL Server 2012 可用性组,我正在尝试了解它将对我们的应用程序升级过程产生什么影响(如果有)。
我们每 8 周发布一次应用程序更新,任何发布都可能包括架构更改和/或数据迁移。
我想了解的是 HA/DR 解决方案是否透明地处理架构更改(新列、索引被添加到辅助节点),或者是否需要手动干预在每个实例上创建架构然后重新打开 Always On。
我假设的数据迁移部分是透明处理的,但也想确认一下。
我想我也做了一个笼统的假设,即基于可用性组配置的这些行为没有区别,这也可能是错误的。请告诉我。
简而言之; 在我的应用程序的任何给定版本中,我可能会通过向其中添加列来更改非常大的表(数百万条记录的数十到数百条记录)。某些列可能是“全新的”,因此它们可以使用 Enterprise Online 架构更改功能。其他列可能是现有列的重构(全名被拆分为名字和姓氏),并且将为表中的每一行运行迁移以填充这些字段。这些行为中的任何一个是否需要 DBA 更改 AlwaysOn 配置,或者这是默认处理的,并且所有辅助节点都“免费”获得 DDL 和 DML 语句?
感谢您提供的任何清晰度。
schema sql-server sql-server-2012 high-availability availability-groups
我在 SQL Azure 中创建了一个架构,并向数据库角色授予了以下权限:
CREATE ROLE myrole AUTHORIZATION dbo;
EXEC sp_addrolemember 'myrole', 'myuser';
CREATE SCHEMA myschema AUTHORIZATION dbo;
GRANT ALTER, CONTROL, DELETE, EXECUTE, INSERT, REFERENCES, SELECT, UPDATE, VIEW
DEFINITION ON SCHEMA::myschema TO myrole;
GRANT CREATE TABLE, CREATE PROCEDURE, CREATE FUNCTION, CREATE VIEW TO myrole;
Run Code Online (Sandbox Code Playgroud)
通过上面定义的权限myuser可以创建/删除自己的模式,所以为了克服这个问题我尝试了 ALTER ANY SCHEMA 权限。但此权限也拒绝用户创建/删除表。
需要什么权限才能允许用户在他自己的架构中做任何事情,但不能创建或删除架构本身?
我有一个 SQL 数据库项目,我在它上面构建了我们的企业数据库。它使用 SSDT 的架构比较工具在内部和 AWS 托管的 SQL 服务器上部署了多次。
当我发布到运行 SQL Ent 2012 sp2 的 Azure Hosted Win 2012 Server 时出现的问题。它返回“比较完成。未检测到差异”。
我知道这是错误的,因为我可以打开企业管理器并将架构与 SQL 项目进行比较,并看到存在差异。
我发现有几篇文章讨论了 2014 版本如何破坏该工具,但这些文章存在版本差异。
[是的,我谷歌了这个。说是因为我忘记这样做而臭名昭著。] https://www.google.com/webhp?ie=utf-8&oe=utf-8#q=ssdt+data+compare+fail+to+detect+difference&start=10
我检查过的其他事项包括确保我的数据库帐户具有无限制的访问权限。我可以连接管理控制台。我可以连接本地程序。
最后确认有问题:
更新
我已经验证这与服务器明确有关,因为现在两台不同计算机上的两个不同用户遇到了完全相同的问题。
这似乎是一个愚蠢的问题,但我一直在研究模式迁移的开源解决方案,即 Liquibase 和 Flyway。
但是,我的老板告诉我 SQL Server Data Tools (SSDT) 可以完成同样的工作。我不确定是否同意,但我在互联网上几乎找不到直接将其与 Liquibase 和/或 Flyway 进行比较的内容。
我的观点是SSDT是SQL Server的开发、数据建模和设计工具,还支持模式比较(及其生成脚本)和源代码控制。尽管在模式迁移的某些方面可能与 Liquibase/Flyway 有一些重叠,但它解决了一个不同的问题。但作为整体架构迁移工具,Liquibase 和 Flyway 是完全专用的工具,而 SSDT 则更多用于数据库的设计和开发。
即使只是说没有比较并且 SSDT 本身根本不是模式迁移工具,任何意见也将不胜感激。
我是 Postgres 的新手,我试图了解模式如何适应一切以及非“公共”模式的好处是什么。例如,它是否提供安全性、访问控制优势或其他优势?
我正在使用的设置是 postgres 拥有数据库和表,但向另一个用户授予选择、插入、更新和删除权限。在“公共”模式与“myotherschema”中创建表会有很大区别吗?
schema ×10
sql-server ×4
postgresql ×3
ssdt ×2
audit ×1
metadata ×1
migration ×1
mysql ×1
permissions ×1
pgadmin ×1