问题标签 [db-schema]

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.

0 投票
5 回答
406 浏览

sql-server - 数据库表上的 1 对 1 关系有味道吗?

我有一张有一堆字段的表。这些字段可以分成逻辑组——比如工作的项目经理信息。分组本身并不是真正的实体候选者,因为它们没有也不应该有自己的 PK。

现在,为了对它们进行分组,这些字段具有前缀(例如 PmFirstName),但我正在考虑将它们分成多个表,在主表上具有 1:1 的关系。

当我这样做时,有什么需要注意的吗?这只是一个糟糕的选择吗?

我可以看到,也许我的查询会因为所有额外的连接而变得更加复杂,但可以通过视图来缓解,对吗?如果我们谈论的是一个少于 10 万条记录的表,这会对性能产生显着影响吗?

编辑:我将进一步证明非实体候选人的想法。此信息由我们的用户群输入。他们不了解/不关心彼此。因此,同一个用户可能会提交相同的“projectManager 名称”或任何在这一点上不会违反任何约束的东西。如果我们想关联来自不同用户的条目,我们可以稍后确定。如果我给这些东西自己的键,它们将以与主表相同的速度增长——因为它们本质上是同一个实体的一部分。没有 pt 是用户从可用的“项目经理”列表中挑选的。

因此,鉴于上述情况,我认为它们不是实体。但也许不是 - 如果您有进一步的想法,请发布。

0 投票
2 回答
89287 浏览

mysql - 聊天的数据库模式?

我需要将聊天对话存储在数据库模式中。我使用这个数据库的方式是在网站上发布聊天记录。每个聊天不会超过大约 20 个响应。有人可以为此建议一个架构吗?

0 投票
2 回答
38847 浏览

mysql - 基于角色的访问控制的数据库架构

我目前正在为本地协会开发成员管理,目前正在开发数据库模式。我想与您分享它以改进它,并为其他人提供基于角色的访问模型 (RBAC) 的示例。我将不胜感激任何建设性的批评,尤其是关于我在表格之间使用的关系。

链接到高分辨率:http: //i.stack.imgur.com/WG3Vz.png

继承人的架构:数据库架构

这个怎么运作:

我正在将现有客户(实际上是协会的成员)从外部应用程序映射到我的管理应用程序中。(客户表)

该关联在 Division、Subdivisions 等中结构化(intern_structures 表)。每个客户都可以是多个部门、子部门、部门等的成员。

每个客户都可以在此类会员(部门,...)中担任一个或多个角色,例如总裁,精算师,财务主管等,并且每个角色都具有某些特权,该角色的所有者可以将其应用于其部门,细分,部门等中的其他人.

凭证与应用程序的某个操作相关联。凭证的所有者可以对他范围内的其他成员执行此操作。可以有多个“独立”应用程序,但它们都共享相同的身份验证/授权系统。

应用程序由模块/子模块/操作等构成。示例可能是“个人详细信息”模块,该模块包含一个名为“图片”的子模块,您可以在此图片上应用“查看、删除、编辑”操作。但是您不能删除任何图片,除非您尝试删除其图片的人在您有足够角色的部门/部门中。

内部结构和应用结构都是树,实现为邻接表嵌套集。邻接表确保完整性,嵌套集允许我快速遍历树。

一个例外是您可以直接向某人提供某些凭据(client_credentials)。如果有人需要对不在他的部门/部分中的人执行某些操作,则需要这样做。

因此,某人可以成为多个部门/部门的成员,并在他所属的每个部门/部门中获得多个角色。我将合并某人通过他的多个角色拥有的所有凭据。并且凭证总是正面的,这意味着限制性凭证是不可能的。

0 投票
1 回答
2896 浏览

sql-server - 在线订购系统的数据库设计

在设计在线商店数据库时,我遇到了一个问题,请有人给我一个建议,它是否设计好?这个想法是有些产品可以分配给类别。每个类别都有一组参数,以便客户更轻松地搜索产品。例如,类别“CPU”将具有参数“cpu family”、“cpu speed”,类别“HDD”将具有“form factor”和“spindle speed”。这些参数名称存储在表 tbCatParam 中,每个产品的参数值都存储在表 tbProdCatParam 中。

我的架构在此处以 jpeg 格式提供: http: //cid-ce0a6f63806e1ea9.office.live.com/self.aspx/PuclicFolder/scheme.jpg

它会这样工作吗?非常感谢

0 投票
1 回答
3141 浏览

sql-server - 如何获取现有 sql 2005/2008 数据库的 dbschema 文件?

有两个数据库要比较,但我不能直接连接一个数据库。所以我想比较架构,然后获取一个脚本来更新一个数据库。VS2010 可以通过dbschema 文件比较两个数据库。如何获取现有 sql 2005/2008 数据库的 dbschema 文件,注意事项:有数据库的机器没有安装 vs2010。

泰!

0 投票
3 回答
4568 浏览

mysql - 用户组表架构

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

或创建一个唯一的表 group_tposts:

0 投票
3 回答
7619 浏览

entity-framework-4.1 - 实体框架代码优先和数据库用户

我们在将 Web 应用程序部署到另一个环境时遇到了一个小问题。我们使用实体框架代码优先方法(从模型自动创建的数据库)创建了应用程序的数据库。在这个开发环境中,我们使用集成安全性,并且表是在 dbo 用户下创建的。这些表就像
     [dbo] .[myTable]

对于我们的其他环境,我们使用数据库的用户名/密码身份验证。我们编写了表格并在数据库上创建了它们。所以它们现在被命名为
     [myDbUser] .[myTable]

运行应用程序时,我们总是会遇到
     Invalid object name 'dbo.myTable' 的问题。

似乎代码仍在尝试查找不存在的 dbo 表,因此失败。

任何人都可以阐明这个问题吗?Entity Framework 从哪里获得这个 dbo 前缀?

谢谢

0 投票
1 回答
107 浏览

sql - 对于财务数据,索引 DATETIME 是否有用?

假设我有一张桌子

股票代码、日期时间、价格

我想执行一个基本查询,例如查找给定股票在给定日期的 12.00 PM 到 3.00 PM 之间的最高价格。目前我索引:

股票代码、日期时间、价格

DATETIME 细化到毫秒级别,换句话说,基本上没有重复数据。对于我希望执行的查询类型,是否有更好的索引方法?或者更一般地说,我可以使用更好的模式吗?

0 投票
2 回答
1118 浏览

java - 使用 JPA/ORM 生成数据库模式是个坏主意吗?

药膏!

关于 SO的另一个问题/答案的一部分(以及声称相同的其他陈述):

如果您通过 JPA 更新数据库模式(虽然通常不是一个好习惯)

你真的不应该使用 JPA 实现来生成你的数据库模式吗?

无论如何,我必须自己建模实体和关系。我还需要定义约束,例如 notnull、主键和外键、数据类型和大小。

假设使用中的 JPA 实现在其 DDL 模式创建代码中没有任何缺陷,并且假设我确实正确指定了所有 JPA 约束、关系等,那么 JPA 实现创建的数据库模式应该完全相同 - 如果不是更好-作为我自己手工制作的架构,对吗?

这不包括“特殊情况”,例如(业务逻辑)特定的 INSERT 触发器等,因为这些完全不能由 JPA 实现生成(据我所知,如果我错了,请纠正我)。

您对此有何看法?
我目前首先手工制作我的数据库模式,然后设置 JPA 约束、关系等,并让 JPA 实现也创建一个数据库模式。然后我比较这两个模式,看看我是否正确地完成了设置。这当然意味着我还必须指定相同的列名等,就像我为我的手工架构所做的那样。

使我的问题更准确;我不会盲目相信 ORM 框架会为我生成模式。我宁愿对架构在我的脑海中的外观有所了解,然后配置框架以匹配它。
我想您只能手动创建更多/最有效的模式,但毕竟我需要(或者更确切地说想要)将它们与 ORM 框架一起使用。因此,虽然我不应该这样做,但无论如何在创建数据库模式时,我都需要牢记 ORM 框架的局限性。

因此,由于我使用 ORM 框架是为了不必关心 RDBMS 的细节,所以让我的应用程序使用 RDBMS 特定的 DDL 创建模式有什么意义?
如果我必须使用一些现有的和外来的模式,我不需要(重新)创建模式,因为我可能无法使用这样的通用工具作为 ORM 框架。

0 投票
1 回答
1850 浏览

nhibernate - Fluent NHibernate 不创建数据库模式

我从现有的空白SQL Server 2005 数据库开始,由 FluentNHibernate 按以下方式配置:

我有这张地图:

我希望在User数据库模式“AccountSystem”中创建表,而不是默认dbo模式,所以我假设添加Schema(...)到我的映射中可以做到这一点。

实际发生的是,当我尝试对User表执行查询时,我收到一个异常,说“对象[AccountSystem].[User]不退出”。事实上,令我惊讶的是,我的数据库中没有任何 db 模式的迹象AccountSystem,这意味着根本没有创建模式和表。我正在使用 NHibernate 的 3.1 版本,这是 Fluent NHibernate 目前支持的最新版本。有什么想法/解决方法可以使架构的创建工作吗?