目前,我们正在开发一个相当大的应用程序,该应用程序必须处理大量记录。
这个想法是,电子邮件必须被存储(带有附件),并且用户应该能够通过 web-api 在他们存储的电子邮件中进行搜索。用户应该能够(在他们自己导出到数据库/存储的消息中)至少搜索以下项目:
该应用程序应该能够处理大量用户和大量电子邮件(很容易从数百万增长到数十亿)。用户应该能够下载完整的原始邮件(带有附件),以便他们可以将其导入到他们的电子邮件客户端中。
我正在考虑将电子邮件索引到数据库中,然后将带有唯一密钥的附件的完整电子邮件作为packagea 存储到单独的存储中。通过这种方式,我应该保持数据库负载尽可能低,因此搜索尽可能快。
我发现了几个用于处理这样的电子邮件的数据库模式。我找不到任何能够处理数亿甚至数十亿条记录(电子邮件)的数据库。
这是保持简单、高效和快速的最有效方法还是我忘记了什么?
// 编辑 这个想法是在亚马逊云上运行它(也许有与之相关的建议?)
是否有任何标准或至少非常常见的文件格式来序列化数据库的模式?似乎每个数据库模式工具都带有自己的文件格式,用于列出表、列、索引等。
这个问题早在 2009 年就被问过,但没有令人满意的答案:Standard Database Neutral XSD toDescribe a Relational Database Schema
xml postgresql entity-relationship information-schema database-schema
我正在为一个简单的 MongoDB 数据库设计架构,其中将为客户提供一个集合。
识别客户的自然方式是使用他们的官方身份证 ID(6 个数字和一个字母,每个人在该国都是唯一的)。另一种方法是让 MongoDB 选择 _id 字段值并使用卡 id 作为另一个字段。
选择一个由 6 个数字和一个字母组成的字符串作为 _id,或者选择 Mongo 创建的 ObjectId 的优点/缺点有什么建议吗?
我使用 Java Persistence API 来描述我将在代码中操作的数据库中的表。
但是,所使用的架构并不相同,具体取决于我的项目的安装位置。因此,当我使用注释时,我希望 SCHEMA 字段是一个变量,但我无法做到:
@Entity
@Table(name = "TABLE_NAME", schema = schemaVariable, catalog = "")
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?是否可以使用persistence.xml文件?
我的目标是拥有具有一些基本信息的产品,例如
并且每个产品都可以有基于以下的选项:
我读过几篇文章,但找不到适合我问题的答案,即如何反映所有这些可能的选项组合可以有不同的 SKU、价格和库存数量。另外,我想为不同颜色的产品提供不同的图像。
所以我目前的想法是为所有选项建立单独的集合:
然后为产品文档中的所有这些选项提供指针数组,并且附加数组variations反映选项的每种可能组合并添加SKU,price和stock字段。
{
_id: "12345",
name: "My Product",
...
colors: [
{
_id: "Color_1",
images: [
"http://myserver.com/images/product_12345_1",
"http://myserver.com/images/product_12345_2",
]
},
{
_id: "Color_3",
images: [
"http://myserver.com/images/product_12345_3",
"http://myserver.com/images/product_12345_4",
]
}
],
sizes: [
{
_id: "Size_5"
},
{
_id: "Size_9"
}
],
materials: [
{
_id: "Material_2"
}
],
variations: [
{
color: "Color_1",
size: "Size_5",
material: "Material_2",
SKU: …Run Code Online (Sandbox Code Playgroud) 我正在尝试将旧数据库的 schema.sql 文件导入到 postgresql 中新创建的数据库中。
您能否让我知道执行此操作需要遵循的步骤。
环境:linux centos 7 DB:postgresql 9.3 我已将 schema.sql 文件复制到目录 /var/lib/pgsql/9.4/data/ 中。
问候。
如果我可能对股票有不同的频率,那么存储各种股票的 OHLC 数据的最佳方法是什么?例如,我可能有:
* OHLC for 5-minute bars for APPL
* OHLC for 1-minute bars for APPL
* OHLC for 5-minute bars for IBM
Run Code Online (Sandbox Code Playgroud)
我正在考虑将所有内容存储在同一个表中,然后添加一个指定分辨率的列,因此它可能如下所示:
symbol, date, time, resolution, open, high, low, close
AAPL, 2017-06-19, 9:30, 5 min, 99.12, 102.52, 94.22, 98.34
AAPL, 2017-06-19, 9:30, 1 min, 99.12, 100.11, 99.01, 100.34
IBM, 2017-06-19, 9:30, 5 min, 40.15, 45.78, 39.18, 44.22
Run Code Online (Sandbox Code Playgroud)
看起来不错吗?
我想通过 Django 迁移在特定的 Postgresql 架构(即“schema1”)中创建一个新表。
尽管遵循此博客或此帖子中的方法 1 ,迁移仍将表发送到默认架构“public”而不是“schema1”。
在 中settings.py,我有:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS': {
'options': '-c search_path=django,public'
},
'NAME': 'myDB',
'USER': 'username',
'PASSWORD': '***',
'HOST': 'my.host.address',
'PORT': '1234',
},
'schema1': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'OPTIONS': {
'options': '-c search_path=schema1,public'
},
'NAME': 'myDB',
'USER': 'username',
'PASSWORD': '***',
'HOST': 'my.host.address',
'PORT': '1234',
}
}
#Path to DBrouter to handle PG schemas /sf/answers/3570520901/
DATABASE_ROUTERS = ('djangogirls.dbrouters.MyDBRouter',)
Run Code Online (Sandbox Code Playgroud)
在 中djangogirls/dbrouters.py,我有:
from legacydbapp.models import …Run Code Online (Sandbox Code Playgroud) 重现步骤:
a和bUserA PhotoA,UserB PhotoB// PhotoA
import {Entity, Column, PrimaryGeneratedColumn, ManyToOne} from "typeorm";
import { User as UserB } from "./User.b";
import { User as UserA } from "./User.a";
@Entity({schema: "a"})
export class Photo {
@PrimaryGeneratedColumn()
id: number;
@Column({
length: 100
})
name: string;
@ManyToOne(type => UserA)
userA: UserA;
@ManyToOne(type => UserB)
userB: UserB;
}
Run Code Online (Sandbox Code Playgroud)
// UserB
import {Entity, Column, PrimaryGeneratedColumn, OneToMany} from "typeorm";
import { Photo as PhotoA …Run Code Online (Sandbox Code Playgroud) 我有一个用户just_one_schema_user。
在我的数据库中,我有两个模式:public和sample
我怎样才能让这个用户只看到sample?
这就是我所做的:
GRANT USAGE ON SCHEMA sample TO just_one_schema_user
REVOKE ALL PRIVILEGES ON SCHEMA public FROM just_one_schema_user
但用户仍然可以列出其中的表public并查看它们的结构。
database-schema ×10
postgresql ×5
database ×2
mongodb ×2
sql ×2
alias ×1
bigdata ×1
django ×1
e-commerce ×1
email ×1
hibernate ×1
java ×1
join ×1
jpa ×1
pgadmin ×1
time-series ×1
typeorm ×1
xml ×1