问题标签 [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 投票
2 回答
12216 浏览

database-design - 如何将 trie 存储在关系数据库中?

我有一个前缀特里。在关系数据库中表示这种结构的推荐模式是什么?我需要子字符串匹配以保持效率。

0 投票
1 回答
6578 浏览

database - 数据库模式 - 预订/可用性系统

最近有人问我一个关于假设的基于 Web 的预订系统的面试问题,以及我将如何设计数据库模式以最大限度地减少重复并最大限度地提高灵活性。

用例是管理员将属性的可用性输入系统。可以设置多个时间段。例如,2009 年 4 月 1 日至 2009 年 4 月 14 日和 2009 年 7 月 3 日至 2009 年 7 月 21 日。

然后,用户只能在相等或更短的可用时段内进行预订。

您将如何将这些信息存储在数据库中?

你会使用简单(真正简化)的东西吗?

然后,您能否轻松地构建一个网页,显示一个可用日历,其中包含已预订的时段。从这个数据库模式构建报告会很容易吗?是否像看起来那么容易?

0 投票
3 回答
28677 浏览

xml - 简单类型字符串的 XML 模式不区分大小写枚举

我的 XML 模式 (.xsd) 文件中需要不区分大小写的字符串枚举类型。通过执行以下操作,我可以不区分大小写。

唯一的问题是我没有得到枚举值。使用 Visual Studio 编写我的 XML 时,我不会得到很好的智能感知。以下将给我枚举,但它区分大小写。

这会给我我的枚举,但如果我收到“开”、“开”或“开”的值,验证将失败。

我想要枚举“on”、“off”并允许输入不区分大小写的版本。

0 投票
1 回答
28317 浏览

.net - 如何使用 NHibernate 模式生成更新数据库表模式?

我试图弄清楚如何使用 NHibernate 配置和映射来更新表模式,而不是删除和重新创建它们。

目前我正在使用NHibernate.Tool.hbm2ddl.SchemaExport带有 FluentNHibernate 的 obj 来为 mysql 数据库生成数据库模式。虽然我不能说这是一个大问题,但每当我调用SchemaExport.Execute数据库时,它都会删除所有表,然后重新创建它们。

更酷的是,如果我可以让它更新现有的表结构,尽可能地保留数据。但我真的不想使用商业产品或代码生成器,因为我一般不喜欢代码生成,而且我不需要这个,我会考虑为此付费。因此,希望任何答案都能牢记这些警告。

0 投票
6 回答
12600 浏览

sql - 如何设计数据库模式以支持使用类别进行标记?

我正在尝试类似Database Design for Tagging之类的东西,除了我的每个标签都被分组到类别中。

例如,假设我有一个关于车辆的数据库。假设我们实际上对车辆知之甚少,因此我们无法指定所有车辆将具有的列。因此,我们将用信息“标记”车辆。

现在您可以看到所有汽车都标有其制造商和型号,但其他类别并不完全匹配。请注意,一辆车只能有一个类别。IE。一辆车只能有一个制造商。

我想设计一个数据库来支持搜索所有梅赛德斯,或者能够列出所有制造商。

我目前的设计是这样的:

我有所有正确的主键和外键,除了我无法处理每辆车只能有一个制造商的情况。或者我可以吗?

我可以在vehicleTags 中的复合主键中添加外键约束吗?IE。我可以添加一个约束,使得复合主键 (vid, tid) 只能添加到 vehicleTags 中,前提是在 vehicleTags 中还没有一行,这样对于同一个 vid,在 with 中还没有 tid同一个cid?

我的猜测是否定的。我认为解决这个问题的方法是在vehicleTags中添加一个cid列,并制作新的复合主键(vid,cid)。它看起来像:

这将防止汽车有两个制造商,但现在我已经复制了 tid 在 cid 中的信息。

我的架构应该是什么?

汤姆在我之前的问题中注意到我的数据库模式中的这个问题,你如何做多对多表外连接?

编辑
我知道在示例中制造确实应该是车辆表中的一列,但假设你不能这样做。这个例子只是一个例子。

0 投票
3 回答
499 浏览

xsd - 寻找代表购物车“订单”的 XSD

我正在尝试创建一个表示购物车“订单”的 XML 模式

我希望这可以完全抽象出我的购物车的实现——并最终支持合作伙伴使用此模式向我们发送订单。(是的,我正计划将此模式集成到我们现有的购物车中)

它将包含原始订单商品、重复运输商品和特定领域的商品。我很有能力建造这个,但我想知道是否有很多这样的东西,我至少可以以此为基础。

我知道像这样的某些模式元素有标准,但我已经忘记了哪些是最好的/标准以及如何扩展它们等。

显然,如果我希望合作伙伴向我发送“订单”,我想使用一个标准(如果存在)。

0 投票
3 回答
2474 浏览

authentication - 身份验证/授权架构

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

0 投票
6 回答
11420 浏览

xml - 如何在 XML 模式中做互斥属性?

我试图使两个 XML 属性互斥。如何创建 XSD 模式来捕获这种场景?

我想要其中之一

但不是

0 投票
11 回答
758 浏览

database - 架构设计

假设您是 GM dba,您必须围绕 GM 模型进行设计

这样做更好吗?

  • 表模型
    • {凯迪拉克、土星、雪佛兰}

或这个?

  • table_cadillac_model
  • table_saturn_model
  • table_chevrolet_model

假设业务线对于模型具有相同的列,并且每个子类型有超过一百万条记录。

编辑:

  • 有很多 CRUD
  • 有很多处理器密集型报告
  • 在任一模式中,都有一个 model_detail 表,其中包含每个模型的 3-5 条记录,并且每个模型的详细信息不同(您不能将凯迪拉克详细信息添加到土星模型)
  • 开发团队对数据库复杂性没有任何问题
  • 我不太确定这是一个标准化问题。即使结构相同,它们也可能被认为是不同的实体。

编辑:

将结构划分为多个表的原因 - 业务线可能对部分有不同的业务规则 - 每个业务线的 addModelDetail() 可能不同(即使数据格式相同) - 高添加/更新活动 - 分区性能更好结构而不是单一结构(我在这里猜测并且不确定)?

我认为这是 EAV 问题的一种变体。当作为 EAV 设计提出时,单表结构通常被认为是一个坏主意。当以这种方式提出时,单表结构通常被认为是一个好主意。有趣的...

我认为最有趣的答案是有两种不同的结构——一种用于 crud,一种用于报告。我想我会尝试用于报告的连接/扁平视图和用于 crud 的多个表,看看它是如何工作的。

0 投票
6 回答
9905 浏览

database - 数据库架构设计

我对数据库设计很陌生,对最佳实践有一些疑问,我真的很想学习。我正在设计一个数据库模式,我对需求有一个很好的了解,现在是把它变成黑白的问题。

在这个伪数据库布局中,我有一张客户表、订单表和产品表。

TBL_PRODUCTS:
ID
描述
详细信息

TBL_CUSTOMER:
ID
名称
地址

TBL_ORDER:
ID
TBL_CUSTOMER.ID
prod1
prod2
prod3

每个“订单”只有一个客户,但可以有任意数量的“产品”。

问题是,在我的情况下,给定订单的产品可以是任何数量(单个订单数百个),最重要的是,订单的每个产品需要的不仅仅是“数量”,而是可以具有跨越页面的值特定订单的特定产品的文本。我的问题是,我怎样才能存储这些信息?

假设我不能将可变长度数组存储为单个字段值,另一种选择是有一个以某种方式分隔并由应用程序中的代码拆分的字符串。一个订单可能有 100 个产品,每个产品只有一个小的 int,或 5000 个字符或自由文本(或介于两者之间的任何内容),仅对该订单唯一。

最重要的是,每个订单都必须有自己的审计跟踪,因为在它的整个生命周期中可能会发生很多事情。审计跟踪将包含通常的信息——用户、时间/日期、操作,并且可以是任意长度。我是否会将特定订单的审计跟踪存储在创建订单时创建的自己的表中(因为它们可能会变得很长)?

有什么地方可以让我了解更多关于数据库设计技术的信息吗?