标签: database-schema

使用多租户构建 Nest.js 应用程序(使用 postgres 模式的每个租户和续集 ORM)并动态切换模式?

我们的团队决定使用 Nest.js 来实现基于 SaaS 的应用程序,并且是 Node.js 环境的新手。对于数据库存储,我们使用 postgres,它支持每个租户的多个模式,sequelise 是我们的 ORM。现在我们面临的一个问题是如何动态切换schema。经过大量研究后,我们找不到可靠的方法。以下是我们遇到的一些事情,

现在我的问题是,由于 node.js 是单线程环境,我想知道下面提到的哪种方式是续集的最佳用例。

  • 创建一个中间件并将架构名称动态设置为请求标头。

选项1:

从sequelise的文档中,有一个选项可以使用“options.searchPath”为每个orm方法(find、findAll ...)设置搜索路径。由于 Node.js 是单线程的,因此在请求标头中传递架构名称并在这样的查询中使用它,是否会导致需要注意的任何问题。在 Ruby On Rails 中,我们有单独的线程使用“thread.current”来处理这个问题,有人可以解释这种方法吗?

选项2:

由于我们已经有了基于代码的代码,是否有一种像 typeOrm 版本那样动态获取续集数据库连接的方法,如上所述,这样我们就不会更改现有代码中的其他任何地方,如果是这样,该怎么做?

谢谢

postgresql database-schema sequelize.js nestjs

5
推荐指数
0
解决办法
2315
查看次数

如何将处理后的 JSON 从 AWS Glue 输出到 DynamoDB?

        {
            "adult": false,
            "backdrop_path": "/example.jpg",
            "belongs_to_collection": null,
            "budget": 350000,
            "genres": [
                {
                    "id": 18,
                    "name": "Drama"
                }
            ],
            "homepage": "",
            "id": 123,
            "imdb_id": "a3f4w4f4",
            "original_language": "en",
            "overview": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur …
Run Code Online (Sandbox Code Playgroud)

json amazon-web-services database-schema amazon-dynamodb aws-glue

5
推荐指数
1
解决办法
846
查看次数

write_pandas雪花连接器功能无法在表上操作

我正在编写一个 python 脚本,该脚本旨在处理一些数据,创建一个表(如果不存在),并在插入刷新的数据集之前截断该表。我使用的角色具有使用、读取、写入、创建表权限以及阶段权限,设置如下:

grant usage, read, write on future stages in schema <schema> to role <role>

我通过雪花连接器在 python 中使用 write_pandas 函数。文档说该函数使用 PUT 和 Copy Into 命令:

To write the data to the table, the function saves the data to Parquet files, uses the PUT command to upload these files to a temporary stage, and uses the COPY INTO <table> command to copy the data from the files to the table. You can use some of the function parameters to control …

python permissions connector database-schema snowflake-cloud-data-platform

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

MongoDB:嵌套值与单独集合的搜索性能 - 数据库架构设计

假设我有一个 MongoDB,其中有单独textsstatements.

我需要能够搜索texts,其中包含某些关键字statements(还有出现搜索词的多个文本)。

我还需要能够找到statements特定用户添加的所有文本中的所有内容,其中包含特定的搜索短语。

我的问题:我是否需要创建一个单独的集合,statements或者我可以简单地将它们添加为嵌套到texts集合中吗?

因此,选项 1(单独的集合):

文字集


text: {
    name: 'nabokov',
    id: '1'
}
Run Code Online (Sandbox Code Playgroud)

报表集合:

statement: {
    text_id: '1',
    id: '24',
    text: 'He opened the window and saw the sky`
}
Run Code Online (Sandbox Code Playgroud)

选项 2(嵌套):


text: {
    name: 'nabokov',
    id: '1'
    statements: [
        id: '24',
        text: 'He opened the window and saw the sky`
    ]
}

Run Code Online (Sandbox Code Playgroud)

如果我想根据关键字搜索单独检索语句并保留上下文数据(例如它们属于哪个文本等),哪种 MongoDB 存储模式更好

这将如何影响较大数据库(例如 > 100 Gb)的写入/读取速度。

我的文本大小限制为 16 Mb。

database-design mongodb database-schema

5
推荐指数
1
解决办法
996
查看次数

数据建模:超类型/子类型

想要找出模拟以下要求的正确方法.

  1. 有三种类型的"派对",一个是Fan,一个乐队和一个BandMember.
  2. BandMember将始终与乐队相关联,也可以是任何乐队的粉丝.
  3. Fan,Band和BandMember之间有共同的属性,但这3个中的每一个也都有自己独特的属性.
  4. Fan可以是任何Band的粉丝,也可以不是

这只是更大思想的一小部分,但它在扩展模型时产生了混乱.我相信它必须是图2或其他一些选项,因为我没有看到BandMember如何与第一个模型中的Band相关联.

我很感激任何意见.

替代文字

替代文字

database database-design datamodel relational-database database-schema

4
推荐指数
1
解决办法
9365
查看次数

用户组表架构

我正在创建一个用户可以加入和创建组的系统.在这些组中,成员可以创建主题并回复已创建的主题,因此我想知道您对以下哪种方法最佳的看法:创建两个表,groups_posts和group_topics:

--group_topics
id PK
group_id int FK
user_id int FK
title varchar(50)
content varchar(500)
status int

--group_posts
id PK
topic_id int FK
user_id int FK
content varchar(500)
status int
Run Code Online (Sandbox Code Playgroud)

或创建一个唯一的表,group_tposts:

--group_tposts
id PK
group_id int FK
user_id int FK
is_topic boolean
title varchar(50)
content varchar(500)
status int
Run Code Online (Sandbox Code Playgroud)

mysql schema database-design db-schema database-schema

4
推荐指数
1
解决办法
3914
查看次数

该表违反了哪种正常形式?

考虑一下这个表:

   +-------+-------+-------+-------+  
   | name  |hobby1 |hobby2 |hobby3 |  
   +-------+-------+-------+-------+   
   | kris  | ball  | swim  | dance |  
   | james | eat   | sing  | sleep |  
   | amy   | swim  | eat   | watch |  
   +-------+-------+-------+-------+
Run Code Online (Sandbox Code Playgroud)

爱好的类型没有优先权,因此所有的爱好都属于同一个领域.也就是说,表格中的爱好可以在任何hobby#列上移动.无论哪一列,特定的爱好都可以在任何列中.

该表违反了哪个数据库规范化规则?


编辑

问:"业余爱好列表是否按任意顺序"?

答:是的.

问:表格有主键吗?

答:是的,假设密钥是一个AUTO_INCREMENT名为的列类型user_id.

问题是列hobby#是否重复组.


旁注:这不是作业.这是一种辩论,它始于 SQL问题的评论 - 基于几个列将记录从一个表匹配到另一个表.我相信这个问题是违反1NF的明显例子.

然而,另一个人认为我" 已经堕落了1NF的谬误之一. "这个论点是基于" 关于第一范式的事实和谬误 "的"重复群体的模糊性" 一节.

我不是写这个来羞辱他,我或任何人.我写这篇文章,因为我可能错了,而且我有一些东西显然是错过的,也许这个家伙并没有对我说好.

database database-design relational-database database-schema database-normalization

4
推荐指数
3
解决办法
3009
查看次数

如何从MS SQL数据表中检索列默认值

DataAdapter.FillSchema用来从MS SQL检索表的模式.不幸的是,这不会返回列的默认值.有没有办法以快速有效的方式检索此值作为模式的一部分,因为我需要检查数百个表?

谢谢!

c# dataadapter database-schema

4
推荐指数
2
解决办法
3269
查看次数

Ruby on Rails中的多对多多态关联

A Video,a Song和an Article可以有很多Tags.每个人Tag也可以有很多Video, Songs or Articles.所以我有5个型号:Video, Song, Article, Tag and Taggings.

以下是这些型号:

class Video < ActiveRecord::Base
  has_many :tags, :through => :taggings
end

class Song < ActiveRecord::Base
  has_many :tags, :through => :taggings
end

class Article < ActiveRecord::Base
  has_many :tags, :through => :taggings
end

class Tag < ActiveRecord::Base
  has_many :articles
  has_many :videos
  has_many :songs
  belong_to :taggings, :polymorphic => true #is this correct?
end
Run Code Online (Sandbox Code Playgroud)

数据库的定义 Taggings

create_table "taggings", :force => true …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails database-schema ruby-on-rails-3.2

4
推荐指数
1
解决办法
1979
查看次数

将数据库项目导出为SQL脚本

我被某人发送了一个网络应用程序,看看我是否可以帮助他们重新托管它.我没有使用Visual Studio中的数据库项目,看起来这个应用程序在Visual Studio中使用了数据库项目,我正在研究如何将其导出为SQL脚本,以便我可以在SQL Server管理工作室中添加它.我已经读过我可以通过转到数据库项目的属性并单击"部署"选项卡来执行此操作,但是我似乎没有部署选项卡!我猜它是Visual Studio的版本.我正在使用2010.如何将项目导出为SQL脚本文件?

在此输入图像描述

t-sql asp.net visual-studio-2010 database-schema

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