标签: schema-design

在Rails模型中使用多个PostgreSQL模式

我的Rails应用程序有一个PostgreSQL数据库.在名为"public"的模式中,存储了主Rails模型表等.我创建了一个"discogs"模式,其中的表名称有时与"public"模式中的名称相同 - 这是其中一个原因.我正在使用模式来组织这个.

如何从我的应用程序中的"discogs"架构设置模型?我将使用太阳黑子让Solr为这些模型编制索引.我不确定你会怎么做.

postgresql ruby-on-rails schema-design models database-schema

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

在mongodb上为每个集合使用多个模式

我想在mongodb中为每个集合使用多个模式,如何使用它?
当我尝试运行它时,它给了我这个错误:

错误:

OverwriteModelError:allUsers编译后无法覆盖模型.
OverwriteModelError:checkInOut编译后无法覆盖模型.


继承我的schema.js

   var mongoose = require('mongoose');

      var Schema = mongoose.Schema
          , ObjectId = Schema.ObjectId;

   var checkInInfoSchema= new Schema({
       name:String,
       loginSerialId:Number
   });


   var loginUserSchema = new Schema({
          sn : { type: Number, unique:true }
          ,uname: {type:String, unique:true}
          ,pass:String
      });

   var registerUserSchema = new Schema({
       sn : { type: Number, unique:true }
       , name: String   //his/her name
       ,pass:String,
       companyKey:{type:String},
       uname:{type:String,unique:true}
   });



   var checkInOutSchema = new Schema({
       uname: String
       ,companyKey:String
       ,task:String
       ,inTime:String
       ,outTime:String
       ,date:{type:String}
       ,serialId:{type:Number,unique:true} …
Run Code Online (Sandbox Code Playgroud)

schema-design mongoose mongodb nosql node.js

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

使用键/值表优于可空列或单独表的[dis]优势是什么?

我正在升级我刚才创建的支付管理系统.它目前有一个表可以接受每种付款方式.它仅限于能够支付一件事,这个升级是为了缓解.我一直在问我应该如何设计它的建议,我有以下工作的基本想法:

  1. 每种付款类型都有一个表格,每个付款类型都有几个常用列.(目前的设计)
  2. 使用带有公共列的中央表协调所有付款(统一付款ID,无论类型如何),并标识具有专用于该付款类型的列的另一个表和行ID.
  3. 为所有付款类型设置一个表,并将未用于任何给定类型的列置空.
  4. 使用中心表的想法,但将专用列存储在键/值表中.

我的目标是:不要过于缓慢,尽可能地自我记录,并在保持其他目标的同时最大限度地提高灵活性.

由于每个表中的重复列,我不太喜欢1.它反映了继承基类的支付类型类,该基类为所有支付类型提供功能... ORM反向?

我倾向于最多2,因为它就像当前的设计一样"类型安全"和自我记录.但是,与1一样,要添加新的付款方式,我需要添加一个新表.

我不喜欢3因为它的"浪费的空间",并且不能立即清楚哪些列用于哪种支付类型.文档可以减轻这种痛苦,但我公司的内部工具没有一种有效的方法来存储/查找技术文档.

我给出的4个论点是,它可以减少在添加新的付款方式时需要更改数据库,但是由于缺乏明确性,它甚至比3更糟.目前,更改数据库不是问题,但如果我们决定开始让客户保留自己的数据库,它可能会成为一个后勤噩梦.

所以,我当然有偏见.有没有人有更好的想法?您认为哪种设计最合适?我应该根据什么标准做出决定?

sql database-design schema-design

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

如何实现元数据的目录并在数据库中自动化SQL?

我在这里读到了关于5NF,EAV和6NF的讨论,以及需要一个目录来"自动"处理元数据和复杂的SQL.这是如何在实践中实施的?

PerformanceDBA在提到目录的6NF和EAV上写了几个答案,例如在以下问题中:

sql database-design schema-design entity-attribute-value database-normalization

22
推荐指数
1
解决办法
1067
查看次数

什么时候参考完整性不合适?

我理解需要具有参照完整性以限制条目中的特定值,或者可能在删除请求时阻止它们被删除.但是,我不清楚一个有效的用例,它会排除这种机制永远被使用.

我想这会涉及几个子问题:

  1. 什么时候参考完整性不合适?
  2. 包含外键列表的多个和/或可能不完整的子集的字段是否合适?
  3. 通常,这应该是架构结构设计决策还是界面设计决策?(或者可能两者都没有)

思考?

sql database referential-integrity schema-design database-schema

15
推荐指数
2
解决办法
6200
查看次数

MongoDB架构设计 - 实时聊天

由于它提供的速度和可扩展性,我正在启动一个我认为特别适合MongoDB的项目.

我目前感兴趣的模块是与实时聊天.如果我在传统的RDBMS中这样做,我会把它分成:

  • 频道(频道有很多用户)
  • 用户(用户有一个频道,但有很多消息)
  • 消息(消息有用户)

这个用例的目的,我想假设一次有5个通道活动,每个通道每秒最多处理5个消息.

需要快速的特定查询:

  • 获取新消息(基于书签,时间戳或增量计数器?)
  • 将消息发布到频道
  • 验证用户是否可以在频道中发帖

请记住MongoDB的文档限制是4mb,您将如何设计模式?你会是什么样的?有什么问题需要注意吗?

activemq-classic schema-design rabbitmq mongodb nosql

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

什么是多语言电子商务网站的高效MongoDB架构设计?

我正在设计一个多语言的电子商务网站.产品具有不同的属性.某些属性对于每种语言(如颜色)都不同,其他属性对于所有语言(如SKU)都是相同的.属性未预定义,例如汽车具有除浓缩咖啡机之外的其他属性.

我想设计数据库模式,以便:

  1. 在语言y中搜索和表示x类别的所有产品的速度很快
  2. 重复数据量很低
  3. 我不想使用带翻译的文件

我正在考虑使用这样的架构:

{
 _id: ObjectID("5dd87bd8d77d094c458d2a33"),

 multi-lingual-properties: ["name", "description"],

 name: { en: "Super fast car",
         nl: "Hele snelle auto"},

 description: { en: "Buy this car",
                nl: "Koop deze auto"},

 price: 20000,

 sku: "SFC106X",

 categories: [ObjectID("4bd87bd8277d094c458d2a43")]
}
Run Code Online (Sandbox Code Playgroud)

是否有更好的替代方案?使用此架构时会遇到什么问题?

database-design schema-design mongodb

9
推荐指数
1
解决办法
6417
查看次数

如何在MongoDB中建模多对多关系(对于MySQL用户)

我来自一个MySQL背景,我正试图包裹我的头MongoDB.特别是,我正在努力概念化我应该如何建模n:n"Mongo方式"的关系.

对于这个例子,假设我们有两个collections:usersinterests.我们需要能够在数据中表示或查询几件事:

  • 用户的兴趣
  • 用户的兴趣评级,例如"喜欢"或"不喜欢"
  • 具有特定兴趣的用户
  • 每个利息评级的计数器(可递增/递减)
  • 利息名称

MySQL,我会创建一个users_interests索引用户ID 兴趣ID的表.对于计数器,我会为每种评级类型设置单独的列,并且每次用户对兴趣进行评级/未评级时,都要完成一项事务以确保计数永远不会错误.

我试过阅读一些架构设计,但无济于事.

你能帮助失落的灵魂找到方向吗?

mysql schema-design mongodb database-schema

9
推荐指数
1
解决办法
2796
查看次数

Mongoose变量键名

我有一个mongo对象,希望通过mongoose我的网络应用程序访问它.我定义的模式有一个Object存储用户ID和一个3级值(是,可能或不).

例如

"user_info": {
    "<id_value_1>": "y",
    "<id_value_2>": "n"
}
Run Code Online (Sandbox Code Playgroud)

id_value_*上面的s是用户会话id,所以是一长串随机字符.我怎样才能mongoose Schema为此创建一个?

  1. user_info: {String, String}工作吗?

  2. 我可以重组它,以便它user_info是一个对象数组{ "sessionid": "<value>", "value: "y"},这没关系,这是最好的选择吗?

schema schema-design mongoose mongodb node.js

8
推荐指数
1
解决办法
9348
查看次数

如何从另一个模式引用 json 模式定义

我有一个 json 模式,将几何图形表示为点或多点。每个都是在“定义”中的模式中定义的:

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "id": "http://schema.my-site.org/geometry.json#",
    "type": "object",
    "oneOf": [
        {
            "allOf": [
                {
                    "required": [
                        "type",
                        "coordinates"
                    ]
                },
                {
                    "oneOf": [
                        {
                            "$ref": "#/definitions/Point"
                        },
                        {
                            "$ref": "#/definitions/MultiPoint"
                        }
                    ]
                }
            ]
        }
    ],
    "definitions": {
        "Point": {
            "title": "Point",
            "type": "object",
            "properties": {
                "type": {
                    "enum": [
                        "Point"
                    ]
                },
                "coordinates": {
                    "$ref": "#/definitions/position"
                }
            }
        },
        "MultiPoint": {
            "title": "MultiPoint",
            "type": "object",
            "properties": {
                "type": {
                    "enum": [
                        "MultiPoint"
                    ]
                },
                "coordinates": {
                    "$ref": …
Run Code Online (Sandbox Code Playgroud)

json schema-design jsonschema

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