标签: data-modeling

我应该使用nvarchar(max)代替nvarchar(64)列还是作为附加列?

我正在构建一个表来跟踪数据库中特定对象的历史记录.目前我有以下列:

HistoryId int IDENTITY(1,1) NOT NULL
HistoryDate datetimeoffset(7) NOT NULL 
HistoryTypeId int NOT NULL
HistoryDetails nvarchar(max) NULL
Run Code Online (Sandbox Code Playgroud)

在大多数情况下,每个历史项目都将通过HistoryTypeId自解释,因此HistoryDe​​tails将为Null或非常小.但对于几种历史类型,细节数据会很大.是否可以使用nvarchar(max)表示所有记录,或者我应该将它拆开并为历史类型添加一个额外的列,这些列需要超过64个字符(见下文)?粗略估计,80%-90%的记录不需要超过64个字符的详细信息,表中将有数百万条记录.

HistoryId int IDENTITY(1,1) NOT NULL
HistoryDate datetimeoffset(7) NOT NULL 
HistoryTypeId int NOT NULL
HistoryDetails nvarchar(64) NULL
HistoryDetailsMore nvarchar(max) NULL
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server database-design data-modeling

4
推荐指数
1
解决办法
2467
查看次数

5个独立的数据库或1个数据库中的5个表?

假设我想建立一个游戏网站,我有很多游戏部分.它们都有很多需要存储的数据.使用表示每个游戏的表创建一个数据库还是让数据库代表游戏的每个部分是否更好?我非常期待一种"依赖"的答案.

mysql database-design data-modeling

4
推荐指数
2
解决办法
964
查看次数

数据建模:父母和孩子的“双重”关系

我正在尝试在我的数据模型中创建正确的父/子关系。我的父母和孩子之间有典型的一对多关系。

我想知道我是否有父母了解他们的孩子,是吗?

  1. 永远可以接受,并且
  2. 一个好主意

让每个孩子具体了解其父母?(在我的情况下,一个孩子只能有一个父母)

parent      
-------------
PARENT_ID
OTHER_COL
...

child
-------------
CHILD_ID
PARENT_ID    // <-- Should this column be here?
OTHER_COL
...

parent_has_children
--------------------
PARENT_ID
CHILD_ID
Run Code Online (Sandbox Code Playgroud)

我认为在子项中包含父列的优点是可以轻松地从子项中检索父项。但是,这只是懒惰的设计吗?

提前致谢。

database database-design data-modeling relational-database

4
推荐指数
1
解决办法
3556
查看次数

实体框架CTP5代码优先映射 - 同一表中的外键

我如何使用modelBuilder映射这样的东西?其中可以为空的外键引用相同的表主键

Table: Task
taskID int pk
taskName varchar
parentTaskID int (nullable) FK
Run Code Online (Sandbox Code Playgroud)

任务类:

public class Task
{
     public int taskID {get;set;}
     public string taskName {get;set;}
     public int parentTaskID {get;set;}
     public Task parentTask {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

...

    modelBuilder.Entity<Task>()
        .HasOptional(o => o.ParentTask)....
Run Code Online (Sandbox Code Playgroud)

entity-framework data-modeling code-first entity-framework-4 entity-framework-ctp5

4
推荐指数
1
解决办法
2941
查看次数

寻找一种简单的机器学习方法来预测训练集的期末考试成绩

我试图根据已知的先前分数预测测试重新计算.测试由三个科目组成,每个科目都有助于期末考试成绩.对于所有学生,我在三门科目中都有他们以前的迷你考试成绩,我知道他们有哪位老师.对于一半的学生(训练集)我得到他们的最终得分,而另一半我没有(测试集).我想预测他们的最终得分.

所以测试集看起来像这样:

student teacher subject1score subject2score subject3score finalscore
Run Code Online (Sandbox Code Playgroud)

而测试集是相同但没有最终得分

student teacher subject1score subject2score subject3score 
Run Code Online (Sandbox Code Playgroud)

所以我想预测测试集学生的最终得分.是否有使用简单学习算法或统计技术的想法?

statistics machine-learning data-modeling data-mining prediction

4
推荐指数
1
解决办法
1358
查看次数

如何在大型数据仓库中为发票创建数据模型?

我正在为大型数据仓库中的客户发票创建数据模型。

以下显示了典型发票上的字段:

在此处输入图片说明


以下是我迄今为止为发票建模而制定的数据模型:

在此处输入图片说明

传统观点认为大型数据仓库应该使用星型模式,这意味着一个事实表,但似乎要对发票建模,我需要两个事实表,如上所示。使用两个事实表是否正确?

data-modeling data-warehouse star-schema

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

Neo4j - 24/7赌场名单

这是一系列新问题,以回应肯尼对我之前关于如何围绕24/7赌场名单建立数据库模型的问题的回答. 在赌场的24/7员工名册的数据库模型

仍然试图了解图表以及如何遍历/连接数据.使用Kenny的答案中图像上半部分的时间图表,每年有12个月的节点,然后指向一行日节点,其中第一天有超过一天的节点,值为1月?我会为每年构建这些子图,还是会使用一个特定的查询来添加一个随时间推移而不存在的节点?我知道有一个查询可以做到这一点,但它需要考虑月节点中的最后一天并创建正确的结束关系?我是否会遇到闰年或夏令时的任何问题?

在答案图像的下半部分是游戏节点,他们只有一个员工和位置关系吗?我不知道如何判断哪个员工被分配到哪个表(没有向关系边添加属性),我应该向边添加属性还是应该为每个对使用单独的节点?

我已经做了一个粗略的图像来显示笔/纸名单的外观,它可能在某种程度上有所帮助. 名单示例

我也试图用一些问题(红色方框)计划出一个图表,它是在插画中完成的并且有点乱,我很想知道Kenny的图形图像是否在特定的应用程序中完成,如果是的话虽然我认为它在视觉上看起来往往会变得纠结和混乱.

图模型概念
您似乎无法单击图像以查找文本可读的直接链接,您可以在此处查看:http://i.imgur.com/FMfJx6G.png

如果有帮助我可以在这里添加问题文本或使用建议的软件重新创建图表.

data-modeling rostering neo4j graph-databases

4
推荐指数
1
解决办法
553
查看次数

数据建模 - 发票和行项目

我正在创建一个基于 Web 的销售点(例如收银机)解决方案,以 Django 作为后端。我一直采用“经典”方法对发票及其行项目进行建模。

\n
InvoiceTable\n  id\n  date\n  customer\n  salesperson\n  discount\n  shipping\n  subtotal\n  tax\n  grand_total\n  [...]\n\nInvoiceLineItems\n  invoice_id // foreign key\n  product_id\n  unit_price\n  qty\n  item_discount\n  extended_price\n  [...]\n
Run Code Online (Sandbox Code Playgroud)\n

在尝试研究最佳实践后,我发现没有很多 - 至少没有广泛使用的明确来源。

\n

Kimball Group 建议:“我们建议您将标题的所有维度都归结为行项目,而不是保留交易标头 \xe2\x80\x9c 对象、\xe2\x80\x9d 的操作概念。”

\n

请参阅http://www.kimballgroup.com/2007/10/02/design-tip-95-patterns-to-avoid-when-modeling-headerline-item-transactions/http://www.kimballgroup.com/ 2001/07/01/design-tip-25-为父子应用程序设计维度模型/

\n

我是开发新手(之前只使用过桌面数据库软件) - 但根据我的理解,这是有道理的,因为我们可以以任何我们想要的方式钻取数据以用于报告目的(尽管我想我们可以对第一个做同样的事情)方法通过连接表)。

\n

我的问题

\n
    \n
  • 每行都需要重复发票 ID(这样我们就可以生成发票总计等数据)。这是这种数据建模方式的故意特征吗?

    \n
  • \n
  • We often have invoice level data like notes, discounts, shipping charges, etc. - How do we represent these using this method? Some discounts …

django database-design data-modeling

4
推荐指数
1
解决办法
4315
查看次数

子类型的关系数据建模

我正在学习关系模型和数据建模.
我对子类型有一些困惑.

我知道数据建模是一个迭代过程,有许多不同的方法可以对事物进行建模.
但我不知道如何选择不同的选项.

假设我们想要模拟粒子(分子,原子,质子,中子,电子......).
为简单起见,让我们忽略夸克和其他粒子.

由于所有相同类型的粒子表现相同,我们不打算对单个粒子进行建模.
换句话说,我们不会存储每个氢原子.
相反,我们将储存氢,氧和其他原子类型.
我们要建模的实际上是粒子类型和它们之间的关系.

我不小心使用" 类型 " 这个词.
氢原子是一个实例.氢是一种类型.氢也是一种原子.
是的,涉及的类型层次结构.我们忽略了最低级别(单个粒子).

途径

我可以想到几种模拟它们的方法.

1.每种类型的事物(粒子类型)的一个表(关系,实体).

1.1我想到的第一种方法.

质子(质子)
中子(中子)
电子(电子)

原子(Atom)
Atom_Proton(原子,质子,数量)
Atom_Neutron(原子,中子,数量)
Atom_Electron(原子,电子,数量)

分子(分子)
Molecule_Atom(Molecule,Atom,Quantity)

1.2由于只有一种质子/中子/电子,我们可以简化它.

原子(原子,质子数量,中子数量,电子量子)
分子(分子)
分子 _ 原子(分子,原子,数量)

在这个简化的模型中,关于质子的事实已经丢失.

2.一个表中的所有内容,其中关联表表示它们之间的关系.

2.1每个关系的一个关联表

粒子(粒子)

Atom_Proton(Particle,Particle,ProtonQuantity)
Atom_Neutron(Particle,Particle,NeutronQuantity)
Atom_Electron(Particle,Particle,ElectronQuantity)
Molecule_Atom(Particle,Particle,AtomQuantity)

2.2单关联表

粒子(粒子)
粒子组成(粒子,粒子,数量)

这种简化不会丢失任何东西.我认为这更好.
但如果存在特定于Atom_Proton/Atom_Neutron/Atom_Electron的事实,2.1可能会更好.

2.3结合2.1和2.2

粒子(粒子) …

database-design data-modeling relational-database relational-model subtype

4
推荐指数
1
解决办法
985
查看次数

使用UML图解释SQL查询?

我必须向那些对我的项目一无所知的人展示一些复杂的查询和 PL/SQL 代码。我需要解释表是如何连接的,条件如何影响结果、连接、循环等。

有没有办法使用 UML 图来记录这个 SQL 和 PL/SQL 逻辑?

sql database uml plsql data-modeling

4
推荐指数
1
解决办法
587
查看次数