Questions tagged «schema»

数据库系统的模式是以数据库管理系统(DBMS)支持的正式语言描述的结构,是指数据的组织以创建如何构造数据库的蓝图(分为数据库表)。

1
具有两种可能的所有者/父类型的实体的数据库架构?
我正在将PostgreSQL与Sequelize用作我的ORM。 我有一种类型User。第二种类型是Group,可以通过GroupMemberships表与任何数量的用户相关联。Users也可以拥有任意数量的Groups。 我的第三种类型Playlist可以属于UserOR或a group。为这种类型设计模式的最佳方法是什么,使其既可以具有所有者的一种,又可以具有所有者的任何一种? 我的第一遍创建了两个关联,但是一次只能填充一个。这可能可行,但似乎很麻烦,并且使查询变得困难。 附加信息 这是我对MDCCL通过评论发布的澄清请求的回复: (1)如果一个播放列表是由给定资集团,可以说,这个播放列表是关系到一个一对多的用户,只要他们是会员这样的小组,对不对? 我相信这在技术上是正确的,但是这种一对多的关联并不明确存在。 (2)因此,一个特定的播放列表是否可以同时由一对多的组拥有? 不,Playlist一对多不可能拥有一个Groups。 (3)一个特定的播放列表是否可能由一对多组拥有,同时又由不是该组成员的一对多用户拥有? 没有,因为在(2)一到,许多从Playlist到Group应该不存在。此外,如果a Playlist由a Group拥有,则不由a拥有User,反之亦然。一次仅一个所有者。 (4)用来唯一标识组,用户和播放列表的属性是什么? 它们每个都有代理主键(id)和自然键(尽管不是主键)。这些是slug用于Group和Playlist,username用于User。 (5)能在特定播放列表遭受所有者的变化? 尽管我不打算将其作为一项功能(至少最初是这样),但我认为这可能会发生。 (6)Group.Slug和Playlist.Slug属性的含义是什么?它们的值是否稳定到足以定义为主键,或者它们经常更改?这两个属性的值以及User.Username必须唯一,对吗? 这些slug是各自实体的唯一,小写,带连字符的版本title。例如,group带有title“测试组”的a将具有slug“测试组”。重复项将附加增量整数。每当他们title改变时,这都会改变。我相信这意味着他们不会做出出色的主键吗?是的,slugs并且usernames在各自的表中是唯一的。

1
如何在SQL Server中批量迁移架构之间?
我们目前有多个数据库,但希望将它们组合起来,而是使用架构将我们的域上下文分开。 在MS SQL Server 2008 R2中,如何将一个架构的所有内容批量重新放置到另一个架构中? 例如,我们在dbo架构中创建的所有表,视图,过程,索引等... 现在都将存在于foo架构中。 编辑:我想根据AaronBertrand的精彩评论进行澄清。这不是多租户的情况。我们的情况是内部工具插件是由没有将表合并到工具数据库中的开发人员隔离开发的。

2
如何仅从.frm文件提取表架构?
我已经从备份中提取了mysql的数据目录,并且需要从旧表中获取架构,但是它是来自另一台计算机的备份。 我今天已经阅读了很多有关如何执行此操作的教程,但是每次它似乎都失败了,或者由于mysql挂起或崩溃而最终不得不重新安装mysql。我尝试了以下方法: 创建一个不同的数据库 在该数据库中创建具有相同名称的表 替换档案 停止/启动引擎 从.frm文件中恢复 我尝试了各种顺序和组合。 是否有任何外部工具可以从.frm文件中提取模式?如果打开文件,我可以看到列名。我看了一下,但似乎找不到任何能使我做到这一点的东西。 提前致谢。

4
数据库设计-具有共享标签的不同对象
我的背景更多是网络编程而不是数据库管理,所以如果我在这里使用错误的术语,请指正。我正在尝试找出为我要编写的应用程序设计数据库的最佳方法。 情况:我在一个表中有“报告”,在另一表中有“建议”。每个报告可以有许多建议。我还有一个单独的关键字表(用于实施标记)。但是,我只希望将一组关键字同时应用于“报告”和“建议”,以便搜索关键字可以将“报告”和“建议”作为结果。 这是我开始的结构: Reports ---------- ReportID ReportName Recommendations ---------- RecommendationID RecommendationName ReportID (foreign key) Keywords ---------- KeywordID KeywordName ObjectKeywords ---------- KeywordID (foreign key) ReportID (foreign key) RecommendationID (foreign key) 本能地,我觉得这不是最佳选择,应该让我的可标记对象继承自一个公共父对象,并对该注释父对象进行标记,这将给出以下结构: BaseObjects ---------- ObjectID (primary key) ObjectType Reports ---------- ObjectID_Report (foreign key) ReportName Recommendations ---------- ObjectID_Recommendation (foreign key) RecommendationName ObjectID_Report (foreign …

1
Postgres 9.2的流复制如何处理模式更改和初始表设置?
我想在物理服务器上建立备份数据库,该服务器位于我的主物理数据库服务器下。我正在使用Postgres 9.2,并且想使用同步流复制(出于原子性),但是我完全不知道类似的事情,A)初始表设置是从服务器1转移到服务器2的(例如,我运行syncdb从我的Django应用程序中,该应用程序在服务器1上创建了一系列表,以及B)如何将模式的持续变化从服务器1携带到服务器2(例如,我运行Django South迁移,该迁移发送ALTER TABLE查询以及添加/删除索引等)。这些事情是通过流复制透明地处理的,还是我需要做一些事情来影响两台服务器之间的更改?

2
单位和复杂单位转换的良好关系结构是什么?
我的公司从事能源行业,我需要想出一种很好的方法来表示计量单位的转换。我已经进行了一些搜索,但还没有找到需要的深度方面的好文章。大多数有关单位转换的信息都假定给定的单位1有一个已知的(硬编码)转换率可以到达单位2,并且它是简单的数学运算(这是我发现的最复杂的示例,仍然没有用)。但是,在现实世界中并非总是如此,对于我们必须处理的事情当然也不是正确的。(很抱歉写了很长时间-我正尝试提供尽可能多的信息!) 棘手的示例1: 某些转换会随时间而变化,例如将$ 5转换为Euros,反之亦然。听起来这与能源无关,但实际上在能源商品市场(想想股票市场)中。 棘手的例子2 :(过于 简单化)某些天然气燃烧得比另一些更热。另外,可以根据气体中的能量(例如Therms)或基于该气体的体积(例如1000立方英尺的MCF)来测量/存储天然气,还有其他可能性(例如作为吨用于质谱)。汽油的一个例子是1加仑的93辛烷无铅汽油比1加仑的93辛烷无铅汽油少。 棘手的示例3: 除了拥有这些度量单位之外,我们还经常需要处理费率,例如$ / Therm或$ / MCF。因此,我们需要某种方式来处理这些费率以及它们与基本单位的关系,因此,如果我们需要从$ / Therm转换为€/ MCF,我们可以并且它使用与从Therm转换为MCF相同的发布费率。 棘手的示例4: 以前,我曾经非常宽松地使用“ 能量 ”一词,有时可能会错误地使用它。从现在开始,这种情况正在改变。所以最后一个曲线球是我们既要处理能源又要处理电源。对于电力,这意味着kWH与kW(尽管是Yahoo Answers,这是一个相当不错的解释)。数据比喻:这就像将下载的总MB数据与Mbps进行比较ISP为您提供的带宽。像数据一样,能量也需要时间来传递。继续进行数据类比,我们可能必须计算一段时间内消耗的平均有效带宽,因此,假设在1分钟内下载了60MB,则“有效”速率将为60 * 8/60 = 8Mbps。这里的“窍门”是,如果我们将Mbps本身存储为一个单位,那么即使它也涉及时间成分,我们也需要某种方法将其直接与MB相关联。幸运的是,从能源到电力的转换(反之亦然)对我们来说是一件非常罕见的事情,因此我们的解决方案应针对所有其他棘手的示例进行优化,并希望也允许这个示例,但不要处理相关的问题。能源到电源是一种选择。 整蛊例如5: 这主要是3 + 4,我们可以同时拥有每千瓦$和$每千瓦时,所以利率同时面对电力和能源。 举个简单的例子: 有些转换非常容易,而这些转换是网络上大多数信息都可以处理的。1000 Wh = 1kWh等。与Therms和Decatherms或kW到MW等相同。在这里我不需要帮助,但请记住,我们约有70%的转换属于此类。 我对如何开始但不确定如何完成的想法: 这显然很混乱,因此我建议我们选择一个标准的度量单位来存储每种商品和“使用类型”的所有数据。因此,对于电力,我们的标准能源单位为kWH,我们的标准动力单位为kW。因此,要转换为任何其他能源/功率单位,我们仅需要与标准之间的转换率,而不是每种可能的组合。如果我们需要将MW转换为W,我们总是可以通过将其转换为kW来实现。 由于转换率可能取决于特定时间,因此我们必须允许存储与测量相关的时间。我怀疑我们不必担心这些转换率的变化快于每小时一次,甚至可以假设每天一次。 由于转换率可能取决于发布的值,因此我们必须允许该值相对于度量存储的能力。我怀疑我们不必担心这些转换率的变化快于每小时一次,甚至可以假设每天一次。 解决所有这些问题之后,我期望创建一个仅处理所有单位转换的Web服务。我不是要执行这些转换的SQL,而是可以做一些创造性的缓存,因此我并不是绝对要锤击这些表,但是有时它需要处理用户访问的网站中每页面加载约400个值的转换。我不确定这是否/如何重要。 我不知道应该在什么级别存储从未更改过的转换率与确实发生更改的转换率,以及如何以一种易于使用的方式快速访问这些转换率的方法,一起工作。 关于如何解决这个问题,甚至某些出版的阅读材料可能有帮助的想法?我正在使用SQL Server(即将成为SQL Azure),但这并不重要。正确表示这一点的模式就是我在这里遇到的问题。如果它像英寸和厘米一样简单,那很容易。但是这里存在转换率变化的问题。

1
PostgreSQL中的模式概念
我无法理解PostgreSQL中模式的概念和用法。我不知道它如何影响我的数据库设计。我为什么要使用它? 如果我决定现在不考虑它们,以后再担心它们,将来会对我产生影响吗? 一个例子的解释会很好。


4
使用复合键识别行的指南
使用一组4列将行标识为唯一的(一种是前键,另一种是float数据类型)是一种好习惯(或者会产生不利影响)吗?我正在尝试构建一个表(链接了4个键),该表将描述表中的唯一条目。我很好奇这是一个好的进攻计划还是有更好的方法。 出于视觉目的,请绘制下表。我们的库存项目的组织方式如下表所示:([K]是主键的象征,线是关系) Sheet_Class Sheet_Type Sheet_Size =========== ========== ========== [K] Sheet_Class-. [K] Sheet_Type--. [K] Sheet_Size '---- Sheet_Class '---- Sheet_Type Length Width Thickness 数据可以通过以下方式呈现,但是为了简洁起见,我不介绍链接的列: Sheet_Class Sheet_Type Sheet_Size (Tables) [Sheet_Class] [Sheet_Type] [Length], [Width], [Thickness] (Column Values) ============= ============ ============================== Aluminum 5052-H32 48, 96, 0.032 48, 96, 0.040 48, 96, 0.063 6061-T6 60, 120,0.032 …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.