问题标签 [data-modeling]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 可扩展的数据库系统,要求批评
我正在为我的网站后端构建一个可扩展的数据库解决方案。我最近一直在阅读有关数据库设计的内容,我似乎自己提出了一个可行的想法。我认为这是一种用同步数据维护 n 个数据库的新颖方法,但我可能错了。所以我要求 SO 评估这个想法并告诉我它是否疯狂。(或者如果它已经存在并已实施)
在这个方案中有一组服务器节点。一个节点运行一个查询负载均衡器(我们称之为A),其余节点运行一个典型的 dbms,我们将这些节点统称为N 。
每个 N 都与其他 N 断开连接。即)N中的节点不需要与任何其他节点进行通信。每个N只与A有一个连接。
这个过程是这样的
- 所有数据库查询都通过A传递。(假设现在A具有无限的吞吐量和处理能力)
- A检查每个查询 ( Q ) 并确定它是将从数据库读取的操作还是将写入数据库的查询。(在 sql 中,读是选择,写是更新)
- 如果Q是读操作,转发给N中的一个节点
- 如果Q是写操作,则将其转发给N中的所有节点
假设它实施得当,这会导致N中的所有节点都具有同步的数据库内容。只读取数据的查询需要发送到一个节点。
这个想法似乎对我特别有效,因为在我的系统中写入操作很少,不到 1%。
所以关于这个想法的几个问题
- 从理论的角度来看,这样的方案是否有意义?
- 如果这确实有意义,是否已经实施了商业或免费的解决方案?
domain-driven-design - 领域模型设计
您将如何为这个简单的示例创建域模型?一个食谱可以有许多成分,一种成分可以用于许多食谱。每个配方中使用的每种成分的多少也被存储。我设计了以下三个数据库表来存储这些数据和关系。
我现在正在尝试创建一个域模型来表示这一点。我有一个包含两个类的基本示例。然后,当我考虑创造一种新成分时,我在这个模型上遇到了麻烦。需要有一个没有数量属性的类。这应该如何建模?
数据库表
替代文字 http://img190.imageshack.us/img190/340/databasex.png
领域模型
c# - 实体框架模型多表到单个实体
我有两个名为 Modules 和 Privileges 的表,它们通过外键关系相关,如下所示:
(来源:sites.google.com 上的 baburajpb)
我想通过将 ModuleName 添加到 Privilege 来模拟 Module 和 Privilege。后来我有兴趣通过在 ModuleName 上添加区分条件从 Privilege 创建派生类(图中的菜单)。这可能使用实体框架吗?
sql - 用于建模数据库条目的图表
您知道显示数据库条目的图表吗?我猜想像 UML 中的对象图。我知道有实体关系模型,但它没有显示数据库的现有条目。
sql-server - 帮助数据库架构?
我正在创建一个简单的博客应用程序,到目前为止,我有 3 个表、帖子、评论和作者。
我将只列出每个表的主键以及外键。
帖子将包含 postid 作为主键。
评论将包含 commentid 作为主键和 postid 作为外键。
帖子与评论有 0 对多的关系。
Authors 将包含一个 authorid 作为主键。
作者将与帖子具有多对多关系,与评论具有多对多关系。
最后一句话是我最麻烦的地方。作者是否实际上与帖子和评论有多对多的关系,或者是一对一的关系。如果是多对多,我听说最好有一个中间表来描述帖子作者和评论作者之间的关系,但我不确定我会在这个表中使用什么键?
如果我口头表达为一个作者可以写很多帖子,一个作者可以写很多帖子,我认为它是一对多,但如果我从存储在表中的实际数据来看,例如帖子将包含多个帖子和作者将包含多个作者,然后看起来像是多对多,这就是交叉引用表的用途,以删除重复项。
sql - 如何在更改记录时更新不同位置(表)的多个信息?
这不是 SO Meta 问题。我仅使用 SO 作为示例。
在 StackoverFlow 中,每个答案、每个评论、每个问题、每个投票都会在某个时间点产生一个徽章。我的意思是在每个操作之后都会测试一个查询列表。
例如,如果 Mr.A 投票赞成 Mr.B Answer。所以我们必须检查这个 Mr.B 的答案是否被投票了 100 次,所以给 Mr.B 一个徽章,是否 Mr.A 第 100 次投票所以给他一个徽章。
这意味着我必须为每个操作运行至少 100 个查询/IfElse。
现在我的真实例子是我有一个应用程序,我从考勤机接收在线数据。当用户向机器出示他的卡时。我收到这个并将其存储为记录。现在根据这个记录我有多个计算。即他迟到了吗。他迟到了 3 天。他在右班吗(白班/夜班)。今天是假期。这是加班吗。他是不是早……等等……等等……等等。
这种要求的最佳策略是什么。
更新:SO 团队可以指导我们吗?
database-design - 如何最好地表示数据库中的地址
可能的重复:
是否有适用于世界所有地址的通用街道地址数据库设计?
在数据库中存储国际地址的“最佳”方式是什么?
数据库中一致且全面的地址存储的最佳实践
我目前有四个表,客户、联系人、设施和客户。
这些表中的每一个都有以下字段:AddressLine1、AddressLine2、City、StateOrProvince、PostalCode。
我想将地址移到单独的表格中,并且还可以指定地址的类型(账单、运输、主要等)。
我的解决方案如下:
- 从客户、联系人、设施和客户中删除 AddressLine1、AddressLine2、City、StateOrProvince、PostalCode。
- 创建包含字段 AddressID(PK)、AddressLine1、AddressLine2、City、StateOrProvince、PostalCode、LastUpdateUser、LastUpdateTime 的 Addresses 表。
- 创建包含 AddressTypeID、AddressTypeName、AddressTypeDescription、AddressTypeActive、LastUpdateUser、LastUpdateTime 字段的 AddressTypes 表
- 使用字段 CustomerID、AddressID、AddressTypeID、CustomerAddressActive、LastUpdateUser、LastUpdateTime 创建 CustomerAddresses 表
- 创建包含字段 ClientID、AddressID、AddressTypeID、ClientAddressActive、LastUpdateUser、LastUpdateTime 的 ClientAddresses 表
- 创建包含字段 ContactID、AddressID、AddressTypeID、ContactAddressActive、LastUpdateUser、LastUpdateTime 的 ContactAddresses 表
- 使用字段 FacilityID、AddressID、AddressTypeID、FacilityAddressActive、LastUpdateUser、LastUpdateTime 创建 FacilityAddresses 表
我正在寻找指导以确定是否有比我设计的解决方案更好的解决方案。为什么大家都这么想?
编辑:此时我不关心美国以外的任何事情,也不关心如何存储街道地址,即街道号码与整个街道地址。我从数据库设计和表结构的角度来看。
sql - 正或负布尔字段名称
表的布尔字段可以使用正数与负数来命名...
例如,调用一个字段:
问题: 是否有适当的方法来做出这种类型的表设计决策,还是任意的?
我的具体示例是带有布尔字段(私有/公共)的消息表。当用户输入新消息时,将使用表单复选框设置此字段。将字段命名为“public”与“private”有什么好处吗?
谢谢。
sql - 数据库设计:实现worker->上级关系
我目前正在为酒店开发一个网站。我要实现的其中一件事是工人-> 上级关系。在 MySQL 中这样做的最佳方法是什么?
我的意思是:厨师的上级是主厨,主厨的上级是班长,班长的上级是总经理。在员工表中,我可以使用上级员工的 ID 将字段设为上级,但我只能获得一个上级/上级角色;更重要的是,我无法检索经理在特定酒店管理的所有员工的列表。
我需要这方面的建议。
sql - 在 MySQL 中跨链接表实现 UNIQUE
一个用户是一个人,一个人有一个公司-用户->人是一对一的,人->公司是多对一的。
person_id 是 USER 表中的 FK。company_id 是 PERSON 表中的 FK。
PERSON 可能不是 USER,但 USER 始终是 PERSON。
如果 company_id 在 user 表中,我可以根据用户名和 company_id 创建一个唯一键,但它不是,如果是,它将是数据的重复。
目前,我正在 RoseDB 管理器包装代码中实现唯一用户名/公司 ID 规则,但感觉不对。如果可以的话,我想在数据库级别定义唯一规则,但我不确定如何处理它。我试过这样的事情:
但这不起作用。
通过阅读文档,我找不到任何类似的示例。我是在尝试添加不存在的功能,还是在这里遗漏了什么?