标签: schema

简历/简历和单独部分的数据库架构

我想弄清楚我在这里是否走在正确的轨道上。

resumes
id
user_id

resume_sections
id
name
desc
Run Code Online (Sandbox Code Playgroud)

部分是我们通常在简历、经验、技能、教育等中找到的部分。

提前致谢!

mysql schema

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

将存储过程的权限授予另一个架构中的表

我在 SQL Server 2012 数据库中创建了一个用户,并撤销了该角色授予的所有权限public

然后我授予了EXECUTE存储过程的权限。用户可以执行该过程,但无法获取其返回的数据。

该过程位于 中schema1,它从中选择的表位于 中schema2

如果我将用户添加到db_datareader角色,它可以从数据库中的所有表中读取所有数据。我尝试使用WITH EXECUTE AS OWNER但没有成功。

我怎样才能只授予对给定过程的访问权限而不授予其他任何权限?

schema security sql-server stored-procedures permissions

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

Oracle 中默认架构的名称是什么?

当您在 Oracle 中创建对象并且未指定架构(对象前缀)时,该默认架构是否有名称?我在 Oracle SQL Developer 中看到,当没有指定前缀时,新创建的对象会出现在根对象节点中,而不是模式对象节点中。

在模式 X 下创建表:

X.table_1

在默认架构下创建表:

表格1

schema oracle oracle-sql-developer

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

db2 中模式和数据库之间的区别

我无法弄清楚 db2 中模式和数据库之间的区别我发现这个 SQL 很混乱,例如:

CREATE TABLE schema1.table1
 ....
 ....
 ....
IN database1.tabspace1
Run Code Online (Sandbox Code Playgroud)

我们可以说这种情况下的数据库包含选项卡空间而模式包含表吗?

schema db2 table

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

用于存储用户配置文件的可空列或 jsonb?

我决定使用可为空字段或 jsonb 来存储用户配置文件。最初,这将用于联系人:emailphone。我预计稍后可能会添加其他列,例如mobilewebsite。此外,可能还有其他不相关的字段,例如设置/首选项、保存的搜索等。

我已经决定我不想为此使用任何形式的键值存储(或任何涉及多对多关系的模式),除非有非常好的理由。

jsonb 的优点:

  • 如有必要,可以为每个“列”存储多个值
  • 添加新字段只需要 JS 编码和文档

jsonb 的缺点:

  • 将“列”名称存储为每个“行”的字符串的开销
  • Wonky 执行比较查询(我认为我的使用场景不适用)
  • 不得不期待意外

还有什么要添加到这个优点/缺点列表中的吗?尽管我只想使用可为空的列,但我认为忽略 jsonb 是一种疏忽 - 这似乎是一个令人信服的选择。

schema postgresql null database-design json

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

为什么我不能采用 RDBMS 数据库设计实践,并用于 NoSQL MongoDB 数据库设计?

假设我有一个 BankAccount 表和一个 BankAccountHistoryTransactions 表。

当涉及到 RDBMS 数据库模式设计时,大多数数据库设计人员会推荐以下内容:

BankAccount Table

int: BankAccountNumber Primary key

double: CashBalance

......

..
Run Code Online (Sandbox Code Playgroud)

此外,在 RDBMS 数据库设计中,BankAccountHistoryTransactions 表将类似于:

BankAccountHistoryTransactions Table

int: BankAccountHistoryTransactionsId Primary key

int: FK_BankAccountNumber Foreign key

DateTime2: DateOfTransaction

.................

.........
Run Code Online (Sandbox Code Playgroud)

在 NoSQL MongoDB 数据库模式中,它更像是一个包含嵌入式 BankAccountHistoryTransactions 集合的 BankAccount 集合:

db.BankAccount.find().pretty()
{
    "_id" : ObjectId("51f7be1cd6189a56c399d3bf"),
    "BankAccountNumber" : "7575785885859",
    "CashBalance" : "890399",
....................................,
...............................,
.......................,
    "BankAccountHistoryTransactions" : {
        "_id" : ObjectId("51f7be1cd6189a56c399d3bf"),
        "BankAccountHistoryTransactionsId": 1,
        "DateOfTransaction" : ISODate("2019-12-31T23:00:00Z")

}
}
Run Code Online (Sandbox Code Playgroud)

我对 NoSQL MongoDB 数据库架构设计方法的问题是银行账户可能有大量的 BankAccountHistoryTransactions 条目(可能进入银行账户的数十万个 BankAccountHistoryTransactions 条目)。

因此,如果我们使用如下所示的伪外键关系会不会更好: …

schema nosql rdbms mongodb database-design

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

无法完成游标操作,因为在声明游标后表架构发生了变化

当我执行从多个链接服务器提取信息并聚合数据的存储过程时,偶尔会收到此错误消息。它看起来与我下面的相似。

DECLARE Cur CURSOR FOR SELECT name FROM sys.servers WHERE is_linked = 1 AND (@Environments IS NULL OR name IN (SELECT Item FROM clrStringSplit(@Environments, ',')))
OPEN cur
FETCH NEXT FROM cur INTO @Environment
WHILE @@FETCH_STATUS = 0
BEGIN
BEGIN TRY   

    SET @Query = '          
        EXEC ' + @Environment + '.db.dashboard.storedproc ''' + CAST(@StartDate AS VARCHAR(10)) + ''', ''' + CAST(@EndDate AS VARCHAR(10)) + ''''

    INSERT INTO #Table (Environment, Column1, Column2, Column3, Column4, Column5, Column6, Column7)
    EXEC(@Query)
END TRY
BEGIN CATCH …
Run Code Online (Sandbox Code Playgroud)

schema linked-server sql-server-2014

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

模式优于多个数据库的示例

在一些数据库系统(例如 PostgreSQL 和 MS SQL Server)中,有一个schema的概念。有很多问题询问什么是模式以及如何使用它们;这是一个很好的。通常答案归结为“命名空间”和“权限”。然而,我仍然不清楚的是,为什么模式比添加新数据库有任何优势。不同的数据库允许拥有单独的命名空间和权限分配。

有人可以在 PostgreSQL 中提供一个示例,其中单个数据库中的多个模式比没有模式的多个数据库具有优势吗?从纯粹的组织角度来看,它们似乎是等效的。

schema

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

在存储过程创建期间重新创建用户和架构

如主题中所述,当与我一起工作的开发人员创建存储过程时,正在创建新用户和架构。最初我为该开发人员分别创建了一个用户和登录名,但后来都删除了。但是,每当他们运行脚本来创建 SP 时,都会重新创建以他们的 Active Directory 名称命名的用户和架构,并将 SP 放置在该“新”架构中。

即使我删除了 SP、用户和架构,如果他们再次创建 SP,用户和架构也会回来。

有没有人对此有任何见解?

schema sql-server stored-procedures users sql-server-2016

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

如何强制系统管理员将数据存储在 dbo 以外的模式中?

我正在使用 GUI 工具在我的 SQL Server 2016 数据库中上传数据。用于上述任务的用户已被授予 sysadmin 权限,我创建了一个专用架构来存储上述数据。这个架构是拥有的,默认为上述用户。问题是,当我上传数据时,它存储在 dbo 模式而不是专用模式中,我无法从该用户那里撤销 sysadmin priv。

请让我知道如何在不撤销 sysadmin priv 的情况下将数据上传到这个专用模式?

谢谢

schema security sql-server role t-sql

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