标签: database-schema

分层数据 - 嵌套集模型:MySql

我只是学习如何实现嵌套集模型,但仍然混淆了它涉及可能属于多个类别的项目的某个方面.鉴于下面的示例是从HERE中提取的,并且反映了我遇到的许多其他示例......

分层数据:编号树

表

添加苹果时,如何避免数据库中的重复,因为它们是多色的(即红色,黄色,绿色)?

mysql database database-design relational-database database-schema

7
推荐指数
1
解决办法
5434
查看次数

如何使用SqlConnection.GetSchema()获取列主键约束

我有一些ADO.NET代码来动态检测数据库模式,我需要的是如何使用该GetSchema方法获取唯一列约束和主键约束SqlConnection.这是我的代码:

conn.Open();     
SqlCommand mSqlCommand = new SqlCommand("sp_pkeys", conn);
mSqlCommand.CommandType = CommandType.StoredProcedure;
mSqlCommand.Parameters.Add(
    "@table_name", SqlDbType.NVarChar).Value = tableName;
SqlDataReader mReader = mSqlCommand.ExecuteReader(
    (CommandBehavior.KeyInfo | CommandBehavior.SchemaOnly));
//ExecuteReader();
DataTable schema = mReader.GetSchemaTable();
mReader.Close();
conn.Close();
Run Code Online (Sandbox Code Playgroud)

c# ado.net stored-procedures sql-server-2000 database-schema

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

使用jdbc创建db2架构

什么是正确的语法或使用JDBC在DB2中创建模式的正确步骤是什么?

在运行时create schema test1create schema test1 authorization db2admin作为db2admin,我一直都会得到DB2 SQL Error: SQLCODE=-552, SQLSTATE=42502, SQLERRMC=DB2ADMIN;CREATE SCHEMA, DRIVER=3.64.106

完全相同的命令可以使用DB2命令行工具正常工作.

sql database db2 jdbc database-schema

7
推荐指数
1
解决办法
8849
查看次数

ER图中2个实体之间的关系

我正在尝试绘制描述以下内容的ER图:

- "部门"雇用"员工"

- 有些"员工"是"特殊的",有更多的属性

- 一些"员工"("特殊"和非特殊)是"经理"

- "经理人"管理"部门"

所以,为了传达这一点,我有:

Department ------(employs)------- Employee-----<--------Special
      |                             |
      |-----------(manages)----------
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我不能在2个实体之间建立2个关系.那我怎么处理这种情况呢?

database database-design entity-relationship database-schema

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

在数据库中的参考表中创建一个代表"所有其他记录"的记录是否是个好主意?

我有一个带有SQL Server后端的asp.net-mvc网站.我正在简化我的情况以突出显示并隔离问题.我在DB中有3个表

  1. 文章表(id,名称,内容)
  2. 位置表(id,名称)
  3. ArticleLocation表(id,文章ID,位置ID)

在我的网站上,当您创建文章时,您可以从多选列表框中选择您希望该文章发送的位置.

大约有25个地点,所以我在辩论添加一个名为"全球"的新位置作为快捷方式,而不是让人从列表框中选择25个不同的项目.我仍然可以将此作为前端的快捷方式,但现在我正在辩论是否有利于此流入后端.

因此,如果我有一篇全局文章,而不是在ArticleLocation表中有25条记录,我只会有一条,然后我会在前端做一些技巧来选择所有项目.我想知道这是一个非常糟糕的主意.

我能想到的事情让我感到紧张:

  1. 如果我创建一篇文章并选择全局但后来最后添加了3个新位置该怎么办?如果没有这种全局设置,这3个位置将无法获得文章,但是以新的方式,他们会.我不确定什么是更好的,因为第二件事实际上可能是你想要的,但它有点不那么明确.

  2. 我对报告有要求,我想过滤所有全球文章.想象一下,我需要一篇文章.IsGlobal()方法.现在我想我可以说,如果一个项目与位置表中的所有记录具有相同的位置数量,我可以将其转换为被认为是全局的,但是再次因为人们可以添加新的位置,我觉得这种方法有点不稳定.

有没有人对这个困境有任何建议,围绕在真正反映"所有记录"的参考数据表中创建记录.感谢任何建议

database sql-server asp.net-mvc database-design database-schema

7
推荐指数
2
解决办法
464
查看次数

在数据库中存储考试问题

我一直在考虑如何设计一个数据库,以便在一年多的时间内保持考试问题(开启和关闭,主要是关闭).

首先,简要介绍一下我所追求的内容.我想设计一个足够灵活的数据库来存储不同的问题类型(例如,简短回答或多项选择问题),并且能够选择任意数量的这些问题作为考试存储.

我的问题是:

如何存储考试题?

由于不同的问题类型需要存储不同的字段,如果我将它们全部放在同一个表中questions,将会有许多从未使用过的额外字段.

如果我将问题类型分成不同的表,那么将question_id存储在某个exam_questions表中将会困难得多,因为它们将来自不同的表.

我也想不出一种灵活的方式来存储信息.

例如,

questions
 - id
 - question
 - type (multiple choice, short response)
 - choice_1 ( used for multiple choice questions)
 - choice_2
 - choice_3
 - choice_4
 - choice_5
 - answer (short response answer here, or just a/b/c/d/e for multiple choice, t/f for true or false)
Run Code Online (Sandbox Code Playgroud)

这样的设计会被推荐吗?如果没有,有没有人有任何建议?

我还有另一个问题:

如果我想将学生的答案存储到这些考试中,那么将它们存储起来效率是否低效?

exam_responses
  - id
  - student_id
  - exam_id
  - question_id or question_number
  - response
  - mark
Run Code Online (Sandbox Code Playgroud)

先感谢您.如果您想要任何其他信息,或者此问题有任何问题,请给我留言,我会尽快修复.

sql database database-design database-schema

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

相同的表名称不同的模式

我的数据库中有以下表,所有表都具有相同的表名但不同的模式.

  • dbo.Versions
  • bpm.Versions
  • wf.Version
  • ...

所有x.Versions对Version表都有一个FK.

我已经从它创建了POCO类(这给了我类Version,Version1,.... - 我已经将classNames重命名为Version和BPMVersion,....但是映射仍然存在于右表中.

这是我映射到bpm.Versions的BPMVersion映射的示例

// Primary Key
this.HasKey(t => t.Id);

// Properties
// Table & Column Mappings
this.ToTable("Version", "bpm");
this.Property(t => t.Id).HasColumnName("Id");
this.Property(t => t.VersionId).HasColumnName("VersionId");
this.Property(t => t.BPMId).HasColumnName("BPMId");

// Relationships
this.HasRequired(t => t.BPM)
    .WithMany(t => t.BPMVersions)
    .HasForeignKey(d => d.BPMId);
this.HasRequired(t => t.Version)
   .WithMany(t => t.BPMVersions)
    .HasForeignKey(d => d.VersionId);
Run Code Online (Sandbox Code Playgroud)

创建迁移脚本时,我遇到以下异常: 实体类型'BPMVersion'和'Version'不能共享表'Versions',因为它们不在同一类型层次结构中或者没有有效的一对一外键与它们之间匹配主键的关系.

我在互联网上发现了以下博客,它认为EF有同名但不同架构的表存在问题(https://entityframework.codeplex.com/workitem/1641http://geekswithblogs.net/tonyt/ archive/2013/07/02/153327.aspx)

反正有没有重命名表名来避免这个问题?

c# entity-framework database-migration database-schema ef-code-first

7
推荐指数
1
解决办法
3474
查看次数

为什么Visual Studio 2013架构比较包含每个对象定义的权限声明,并将它们视为与项目不同?

我最近将我的一个项目更新到Visual Studio 2013.更新将我的.dbproj更改为.sqlproj,使其符合新的SQL项目格式.

在转换之后,我运行了一个与我的SQL项目和我的SQL 2008生产数据库进行模式比较,它现在认为每个对象都是不同的.通过模式比较工具进行调查后,看来差异在于每个对象定义还包括为该对象授予每个角色或用户的权限的语句.

因此,服务器端看起来像这样:

CREATE PROC MyCoolProc
BEGIN
  --some code
END
GO

GRANT EXECUTE
    ON OBJECT MyCoolProc TO MyAwesomeUser
    AS [Schema];
GO
Run Code Online (Sandbox Code Playgroud)

并且同一对象的客户端看起来像这样:

CREATE PROC MyCoolProc
BEGIN
    --some code
END
Run Code Online (Sandbox Code Playgroud)

为什么是这样?当我使用Visual Studio 2010运行模式比较时没有发生这种情况.此外,我查看了SQL比较工具的所有选项,但我找不到"忽略对象的权限声明".有人可以帮忙吗?

编辑

为了确保这是Visual Studio的SQL Compare工具而不是SQL Server本身的问题,我在我的登台和生产数据库之间重新运行Visual Studio 2010中的比较,并且对象定义不像他们那样包含对象权限在Visual Studio 2013中.

sql-server-2008 database-schema schema-compare visual-studio-2013 sqlproj

7
推荐指数
1
解决办法
4962
查看次数

在Sql Server数据库架构比较中禁用更新目标按钮

我将Visual Studio 2013 Professional Update 4与多个SQL Server 2012 Enterprise服务器/实例结合使用.Idea是使用带有SQL Server项目的Visual Studio解决方案创建受版本控制的部署.

但是由于某种原因,"更新目标"和"生成脚本"按钮被禁用.

架构比较

我可以从sql server数据库更新本地数据库项目,但反过来不起作用.(见截图)

尽管我找到了一些有类似问题的人,但Google根本没有帮助.

架构比较后禁用更新目标按钮

VS2012:模式比较,禁用更新按钮

VS2012架构比较按钮已禁用

但是这些问题/博客中没有一个是关于Visual Studio 2013的,而且所提出的解决方案都没有适用于我.

问题:为什么禁用"更新目标"按钮,我必须更改以解决此问题?

注意:当然,我使用的是最新版本的SQL Server数据工具(12.0.50318.0)

t-sql deployment database-schema sql-server-2012 visual-studio-2013

7
推荐指数
2
解决办法
3243
查看次数

将自定义字段添加到django模型(不更改源代码)

客户想要将自定义字段添加到我们提供的django模型中.

他想在没有编程的情况下独自完成这项工作.

这些东西应该是可添加的:

  • 布尔值(是/否)字段.可选"未设置"
  • 单选领域
  • 多选字段
  • 单行文本字段
  • textarea字段
  • 日期

例:

客户想要添加一个他称之为"成功"的字段.字段>应该有这些选择:是/否/未设置.默认未设置.

如果我可以通过创建或扩展模型来实现这一目标,那将会很容易.但在这种情况下,不允许更改源代码:-(

怎么解决这个?

更新

需要支持查询具有给定值的实例.示例:显示"成功"为True的所有实例.

python django database-schema

7
推荐指数
2
解决办法
990
查看次数