问题标签 [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.

0 投票
8 回答
393 浏览

database - 在对数据库建模时如何处理“特殊情况”数据?

我们的组织为我们的客户提供各种服务(例如,网络托管、技术支持、定制编程等)。我们网站上有一个页面列出了所有可用的服务及其相应的价格。这是静态数据,但我的老板希望它全部从数据库中提取。

列出了大约 100 项服务。然而,其中只有两个具有“价格”的非数字值(特别是字符串“ISA”和“成本 + 8%”——我真的不知道它们应该是什么意思,所以不要问我)。

我不想仅仅因为这两个列表就将“价格”列设为 varchar。我目前的方法是创建一个特殊的“price_display”字段,该字段要么为空白,要么包含要显示的文本来代替价格。这个解决方案感觉太像一个肮脏的黑客(它会使查询不必要地复杂化),那么有更好的解决方案吗?

0 投票
3 回答
2474 浏览

authentication - 身份验证/授权架构

是否有任何用于身份验证/授权模式的最佳实践数据模型?

0 投票
6 回答
407 浏览

data-modeling - 一些 snarks 是 boojums:boojums 列表,还是所有 snarks 上的 is_boojum 属性?

问题域以大量命名的蛇为特征。有些蛇是boojums。

至少有两种方法可以对此建模:

看起来很直观,如果我们确定 snark 分为男性和女性,我们将在 snark 类定义中添加“sex”属性;如果我们确定除了 5 条蛇以外的其他人都是被征服的臣民,我们就会列出一份皇室成员名单。

是否有可以应用的原则,或者是架构偏好的问题?

0 投票
2 回答
1230 浏览

c++ - 使用热方程从分散的数据中插入地形表面

这是我在这个论坛的第一个问题,所以请多多包涵,希望我没有违反任何规则。我正在研究将分散的 3d 数据建模为网格函数的不同方法(通过 xy 支持,z=z(x,y))。

在回答另一个问题时,coryan 很好地提到了使用热方程插入(近似)我听说过并渴望学习的地形表面的方法,或者甚至找到并行实现?如果它在公共领域,或者至少进一步解释它是如何完成的,请coryan或任何其他人指出我这样的实现。

0 投票
5 回答
1651 浏览

database-design - Best practice for managing data-model changes in a released system

I am about to embark on the development of a web application project.

I'd like to get something up early and often for early adopters to play with and feedback.

But I envisage the data model changing as the project progresses and my understanding of the system improves.

How should I manage the dilemma of updating the data model appropriately and preventing data loss for early adopters? Should I simply put up a big warning saying "user beware", or should I put in the effort to create migration scripts?

0 投票
3 回答
543 浏览

sql - 数据建模:当一个表对单个表有多个外键约束时,什么是好的关系设计?

我有 2 张桌子:1. 员工 2. 凭证

雇员表有一个主键。Vouchers 表有 3 个引用Employees 表的外键约束。

以下是用于在 SQL Server 中创建两个表及其关系的示例 T-SQL 脚本(不是实际的表脚本):

但是会抛出一个错误:

我不知道这里有什么有效的解决方案。对关系的要求是:每当删除 Employee 时,将其某些列引用到 Employee 的 Voucher 不会被删除(ON DELETE CASCADE 不是一个选项)。相反,引用到已删除员工的列(IssuedBy、ReceivedBy 和/或 ApprovedBy)的值应设置为 NULL(因为这些列是 NULLABLE)。

非常感谢!

0 投票
6 回答
4534 浏览

sql - 为自定义产品类型定义通用数据模型

我想创建一个产品目录,允许目录中每种产品类型的复杂细节。产品类型具有与之关联的截然不同的数据;有些只有通用数据,有些有一些额外的数据字段,有些有许多特定于该产品类型的字段。我需要轻松地将新产品类型添加到系统中并尊重它们的配置,并且我喜欢关于如何为这些产品设计数据模型以及如何处理持久性和检索的提示。

有些产品将非常通用,我计划使用通用 UI 来编辑这些产品。具有与之关联的可扩展配置的产品将获得为其编辑创建的新视图(和控制器)。我希望所有定制产品都定义自己的模型,但共享一个公共基类。基类将表示没有自定义字段的通用产品。

需要处理的示例产品:

  1. 通用产品
    • 描述
  2. 灯泡
    • 描述
    • 类型(包括荧光灯、白炽灯、卤素灯、led 灯)
    • 瓦数
    • 样式(洪水、斑点等的枚举)
  3. 冰箱
    • 描述
    • 制作
    • 模型
    • 样式(在域模型中有一个枚举)
    • 滤水器信息
      • 零件号
      • 描述

我希望使用 MEF 来发现系统中可用的产品类型。我计划创建包含产品类型模型、视图和控制器的程序集,将这些程序集放入 bin 中,并让应用程序发现新的产品类型,并在导航中显示它们。

  1. 使用 SQL Server 2008,存储这些不同类型的产品的最佳方式是什么,允许添加新类型而无需增加数据库架构?

  2. 从数据库中检索数据时,将这些多态实体转换为正确的域模型的最佳方法是什么?


更新和说明

  1. 为了避免内部平台效应,如果每种产品类型都有一个数据库表(用于存储该类型的产品),那么我仍然需要一种方法来检索跨产品类型的所有产品。那将如何实现?

  2. 我与 Nikhilk 就他的 SharePoint 参考进行了更详细的交谈。具体来说,他在谈论这个:http: //msdn.microsoft.com/en-us/library/ms998711.aspx。它实际上看起来很有吸引力。无需解析 XML;并且可以进行一些索引,以允许对数据进行简单快速的查询。例如,我可以通过知道该行中的第一个 int 列是该行代表一个灯泡时的瓦数来说“找到所有 75 瓦的灯泡”。应用层中的某些东西(NHibernate?)将定义从产品类型到用户数据模式的映射。

  3. 否决了具有属性表的模式,因为这可能导致每个产品有很多行。这可能会导致索引困难,而且所有查询基本上都必须对数据进行透视。

0 投票
1 回答
246 浏览

c# - 在不级联删除的情况下解决对数据模型的依赖关系

数据模型:

tTemplate (TemplateId int PK)
tPage (PageId int PK, TemplateId int FK)
tEmailMessage (EmailMessageId int PK, TemplateId int FK)

要求:

只有在没有依赖关系的情况下才允许删除模板。

TemplateService 负责删除模板:

新模板服务()。删除(我的模板);

Page 和 Email 模块依赖于 Template 模块,而后者又很高兴地不知道这些依赖关系。在某些设置中,页面或电子邮件模块将不存在。我将如何解决对底层数据模型的依赖?如何让 TemplateService 开始查询以了解是否可以删除该项目?

我对 EventBrokers 和 Message Queues 进行了一些研究,但看不到它们如何单独帮助我。我也看不到单独使用 .net 事件模型如何解决这个问题。

我并不是真的在寻找一种维护数据完整性的方法,而是一种允许服务间通信而不会导致不必要的服务依赖的方法。我可能有一个 PageService 的实现,可以在其中删除模板,并且可以通过将 tPage.TemplateId 设置为 null 来解决依赖关系。在其他实现中,我可能想要创建级联删除。

0 投票
4 回答
40270 浏览

sql - 哪些 mysql 数据库表和关系将支持带有条件问题的问答调查?

我现在正在开发一个相当简单的调查系统。数据库模式将很简单:一个Survey表,与Question表处于一对多关系,与Answer表和与PossibleAnswers表处于一对多关系。

最近,客户意识到她希望能够仅向对之前的问题给出特定答案的人显示某些问题(例如,你买香烟吗?后面会跟着你最喜欢的香烟品牌是什么?,没有必要再问第二个)向非吸烟者提问)。

现在我开始想知道根据我的数据库模式实现这个条件问题的最佳方法是什么?如果question A有 2 个可能的答案:A 和 B,并且只有在答案是?question B时才应该向用户显示?A

编辑:我正在寻找一种将有关需求的信息存储在数据库中的方法。数据的处理可能会在应用程序端完成,因为我的 SQL 技能很烂;)

0 投票
2 回答
591 浏览

multithreading - 如何在模型和视图之间共享数据?

我目前正在重新设计一个应用程序,该应用程序正在从输入数据构建模型,并将该数据显示给用户。当前系统具有用于构建模型的线程、用于构建模型的可视化的线程和显示可视化的线程。我遇到的问题是指针在建模和可视化线程之间传递——为了使线程安全,模型中的所有对象都必须有一个互斥体。这意味着系统中有数千个互斥锁处于活动状态,由于两个线程都在争夺资源,因此会出现很多停顿。

那么,鉴于这三个线程将存在,以高效和线程安全的方式在建模和可视化线程之间共享数据的最佳方式是什么?一些数据结构很大并且会改变建模线程的每个周期,所以我有点不愿意每次都复制数据。

编辑:

我们希望通过系统的总延迟是从接收消息到显示显示变化的显示大约 100 毫秒。如果可能的话,我们希望它更快,但更重要的是我们需要它保持一致 - 现在我们看到由于互斥体争用导致循环时间的巨大变化。从建模到可视化的数据以 2D 高度图为主——大约 18000 个单元格的数据。不过,模型更新中实际更新的单元数量要少得多——可能只有几百个。