数据库设计 - 是否应该避免一对一关系? [复制]

2024-04-19

可能的重复:
是否存在使用数据库 1:1 关系有意义的时候? https://stackoverflow.com/questions/517417/is-there-ever-a-time-where-using-a-database-11-relationship-makes-sense

为了简单起见,我将直接问这个问题:数据库设计中的一对一关系应该避免还是可以接受?

我知道这个“项目”的所有属性都可以托管在一个表中,但我觉得当通过 ORM 将数据库设计转换为业务对象时,它会用不必要的属性使实体变得混乱。

通过 UI,希望这能描绘出更好的画面,我有一个包含所有必要属性的主窗体。我将有一个按钮,允许用户单击它,它将弹出一个新表单来附加额外的属性。不能有超过 1 个条目与主表单(实体)相关联,即它是 0..1 结束关系。

任何建议将被认真考虑。


不,一对一的关系是完全有意义的。

想象一个实体可以选择拥有一个装满属性的桶 - 有些实体具有这些属性,而其他实体则没有。

您可以将所有这些属性作为列包含到实体表中 - 但在这种情况下,对于大量条目,许多列最终会变成空。

或者:您可以将那些“可选”属性放入单独的表中,设置 1:1 (或者更确切地说:0:1)与基本实体表的关系,并且仅当您的实体确实具有这些属性时才在其中存储内容。

决定是否将某些属性“外包”到单独的表中的主要标准是:

  • 这涉及多少个属性?如果只是一两个 - 不要竭尽全力将它们放在单独的表中。但如果你说的是 8、10、15 - 那么请考虑一下

  • 有多少基本实体可能具有这些可选属性?再说一遍:如果 95% 的实体无论如何都始终具有所有这些属性,那么执行此额外步骤就没有意义。如果只有一半或更少的实体具有这些属性 -> 我肯定会考虑这样一个表

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

数据库设计 - 是否应该避免一对一关系? [复制] 的相关文章

  • 在iOS中启动应用程序时如何复制sqlite数据库?

    每次启动应用程序时 我想将带有最新更新的 sqlite 数据库从数据库位置复制到我的 iOS 应用程序 有什么办法可以做到吗 您可以将以下方法添加到您的应用程序委托中 void copyDatabaseIfNeeded Using NSFi
  • 使用 Entity Framework Code Only 和 ASP.NET MVC 的模块化应用程序

    我所说的模块化应用程序是指无需修改核心应用程序代码即可扩展基本功能和数据模型的应用程序 这是一种流行的方法 例如 开源 CRM 例如 SugarCRM 或 VTiger 在使用区域或 来自 MVC contrib 的可移植区域 的 ASP
  • Phonegap:WebSql 还是 SqLite?

    我使用phonegap的时间很短 并且我对其中的存储概念遇到了一些麻烦 因此 文档指出您可以打开这个数据库 它是一个 SQLite 实现 window openDatabase 返回一个新的数据库对象 此方法将创建一个新的 SQL Lite
  • PostgreSQL 索引使用分析

    是否有工具或方法可以分析 Postgres 并确定应创建哪些缺失的索引 以及应删除哪些未使用的索引 我在使用 SQLServer 的 分析器 工具执行此操作方面有一些经验 但我不知道 Postgres 中是否包含类似的工具 我喜欢这样来查找
  • 构建可扩展 Web 应用程序的书籍? (数据库性能/调优、网络、一般性能等)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 从计算机科学专业毕业并作为一名从事 Web 应用程序的软件工程师进入 现实世界 后 我对如何正确扩展 W
  • JavaScript 和数据库连接

    javascript可以直接访问数据库吗 我觉得我的问题是反问 因为这是一个安全问题 但这有可能吗 有可能的 有了新的html5功能 js可以通过WebSql连接 一个活生生的例子 http html5demos com database
  • 是使用多个数据库各有一个架构更好,还是一个数据库有多个架构更好? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 After 这条评论 https stackoverflow com questions 1130555 postgresql pitr bac
  • OutputStream 到 DB2 数据库表的 BLOB 列

    在 DB2 数据库中 我有下表 CREATE TABLE MyTestTable MYPATH VARCHAR 512 NOT NULL MYDATA BLOB CONSTRAINT MYTESTTABLE PK PRIMARY KEY M
  • 通过php将MYSQL数据导出到Excel/CSV

    我想通过 php 将 MYSQL 数据导出到 Excel CSV 这样我以后就可以使用我的数据库 或者有人可以使用并理解它 要使用适合 EXCEL 的语法创建 CSV 文件 您可以使用基本 SQL SELECT FROM mytable I
  • PHP/HTML 添加删除按钮

    我有下面的代码来从数据库中检索行 其中用户名列与基本目录名称匹配 username basename dirname FILE username mysql real escape string username result mysql
  • 在自动触发的默认侦听器之前触发 Hibernate 自定义事件侦听器

    我创建了一个自定义 Hibernate 事件监听器 扩展了 org hibernate event PreInsertEventListener 自定义侦听器会重写 onPreInsert 方法 并在使用 DAO 将 联系人 实体保存到数据
  • 输入数据库时​​拆分文本框中的文本

    当插入 MS Access 数据库 时 如何将文本框中的单词拆分或放入另一行 例如 我的文本框有这些词 ABC DEF 生长激素指数 JKL 当用户按下回车按钮时 以下单词将被插入到文本框中 但每个单词都会在一个新行中 例如 ABC 将位于
  • Java中对象的序列化需要什么? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 谁能告诉我Java中对象序列化的需求是什么 并给我一个示例场景来解释需求 我已经了解什么是序列化 我只是想了解何时使用它以及如何使用它
  • 什么是“标量”查询?

    我正在使用 LLBLGEN 其中有一种方法可以将查询作为scalar query 谷歌搜索给了我一个定义scalar sub query 它们一样吗 标量查询是返回由一列组成的一行的查询
  • MySql:将多项选择数据存储在数据库中

    我的表单中有一个复选框列表 用户可以选择其中任何一个 也可以选择全部 认为用户选择他感兴趣的运动类型 我需要最好的数据库结构来存储这个用户选择 这样 将来我就可以获得所有这些数据 我想 我无法将每个 用户 ID 运动 选择作为新行存储在数据
  • has_many 关系的动态 class_name

    我正在尝试与动态 class name 属性建立 has many 关系 class Category lt ActiveRecord Base has many ads class name gt lambda return self i
  • FIND_IN_SET 具有多个值[重复]

    这个问题在这里已经有答案了 我想从数据库字段搜索多个值 以下是我的查询 SELECT FROM tablename WHERE FIND IN SET 12 13 15 15 category id 我如何搜索它对我不起作用 FIND IN
  • Sqlite 删除速度极其慢 - 如何加快速度?

    我读到删除操作很慢 我想知道如何改进此检查 我有一个每天填充 10 15k 行的表 每次启动时我都需要清理所有超过 6 个月的记录 但是当数据库增长时 我开始遇到速度问题 当我运行此命令时 有接近 100 万条记录 即使我没有任何内容要删除
  • 当我尝试连接到数据库时收到“错误:无法初始化 OLE”? C#

    我正在尝试通过 C 连接到数据库 但这样做时收到一条非常无用的错误消息 08 44 17 错误 无法初始化 OLE 08 44 17 错误 无法初始化 OLE 我尝试寻找解决方案 但没有成功 我也尝试重新启动计算机 但这也没有帮助 我正在运
  • 如何使用注释和聚合在 Django 的 ORM 中执行此 GROUP BY 查询

    我真的不知道如何翻译GROUP BY and HAVING到姜戈的QuerySet annotate and QuerySet aggregate 我正在尝试将这个 SQL 查询转换为 ORM 语言 SELECT EXTRACT year

随机推荐

  • DJango过滤器查询集

    我是 DJango 和 DRF 的新手 并被要求管理一些 DJango DRF 相关代码 经过大量搜索后 我仍然无法找到有关 filter queryset 如何工作以及如何与不同参数一起使用的完整示例 在某些地方我看到它的用法如下 sel
  • 投票数据库架构

    民意调查的最佳数据库架构是什么 一对多关系对此有好处吗 我正在考虑有两张桌子 poll questions int id varchar body datetime created at datetime updated at poll a
  • 使用 python 字符串格式插入制表符

    我正在尝试使用 format 形成一个字符串 但无法弄清楚这一点 lems scaena persona improbus for i in lems print format i t whatever 但拉环并没有像我想象的那样拉紧 实际
  • 如何解决“在 iOS 上使用 expo 播放视频但没有声音”的问题

    我使用世博会的视频组件 我可以播放视频 但在 iOS 中没有声音 在安卓上没问题 我该如何解决它
  • 在运行时停止/启动 WCF MEX 服务

    是否可以 如何在运行时停止和启动自托管 WCF 服务的 HTTP MEX 侦听器而不影响主 WCF 服务 请不要问我为什么要这样做 这是一种绕过别人人为限制的黑客行为 在重新测试和代码清理后重新添加了这个答案 这是我添加到我的基于 WCF
  • R:sample()命令受约束

    我试图从 0 到 7 随机抽取 7 个数字 有替换 但受到所选数字加起来为 7 的约束 例如 输出 0 1 1 2 3 0 0 没问题 但输出1 2 3 4 5 6 7 不是 有没有办法在添加约束的情况下使用示例命令 我打算使用以示例命令作
  • “在预期的位置未找到 FROM 关键字”

    SELECT distinct REPLACE CM NAME as CM NAME TO CHAR Booking Date MM DD YYYY AS Booking Date where Booking Date 03 20 2018
  • Logstash 解析时间戳半天上午/下午

    Logstash 新手 真的很喜欢它 尝试解析包含时间戳的 CSV 文件 想要解析时间戳并将其用作 timestamp字段 我的 CSV 输入示例 input stdin filter filter the input by csv i e
  • 使用 Microsoft.Web.Administration 远程管理 IIS 时身份验证期间出现 COMException

    设想 我需要远程管理与请求更改的服务器位于同一域的 IIS 服务器 创建和销毁应用程序 我有一个应用程序池设置为在授权帐户下运行 我已经使用 IIS 管理器和 Web 池成功运行的帐户测试了远程配置 因此我知道权限是正确的 我通过代码执行此
  • 为什么 Linq Cast<> 帮助器不能与隐式转换运算符一起使用?

    在决定重复投票之前 请阅读全文 我有一个实现的类型implicit cast运算符转换为另一种类型 class A private B b public static implicit operator B A a return a b c
  • 根据 pandas 中另一列的值创建新列

    我有这个 pandas 数据框 其 代码 列包含顺序分层代码 我的目标是使用每个层次级别代码及其名称创建新列 如下所示 原始数据 Code Name 0 A USA 1 AM Massachusetts 2 AMB Boston 3 AMS
  • 通过不加载主题和插件使 WordPress WP-API 更快

    我想更快地向 WordPress API 发出请求 我的API是在插件中实现的 使用register rest route来注册我的路线 然而 由于这是一个插件 所以所有内容都已加载 子主题和主题 并且基本上对该 API 的查询需要半秒 因
  • SQLite 查询中的 JavaScript for 循环

    我创建了一个函数 它将从我的数据库返回字符串 path function getAudio mid cb mid is an array containing the id to some multimedia files for i 0
  • 在 VSTS 托管代理上使用 PowerShellGet

    我在构建过程中使用 Visual Studio Team Services VSTS 托管的构建代理 我的构建主要依赖于 PowerShell 步骤 该步骤调用我在 git 中的脚本 在此脚本中 我想使用 PowerShellGet 管理
  • 关闭文件而不退出 VIM 应用程序?

    我用 e and w用于编辑和写入文件的命令 我不确定是否有 close 命令可以在不离开Vim的情况下关闭当前文件 I know that the q command can be used to close a file but if
  • 如何在嵌入式 Jetty 上设置 SSL?

    我已经嵌入了 jetty 7 x 基本上只是创建一个 SelectChannelConnector 来侦听端口 80 和 WebAppContext 来部署单个 WAR 目录 我现在需要添加 SSL 所有密钥库内容都已完成 我本想只添加一个
  • 如何覆盖 SyliusCoreBundle 模型用户

    我尝试在模型用户 SyliusCoreBundle Model User 中添加一个新字段 电话 避免接触SyliusCoreBundle 我创建了一个新的捆绑包 ShopBundle 它位于其他 sylius 捆绑包旁边以覆盖基本用户类
  • ASP.NET 中的 Twitter API 集成

    目前我正在使用剃刀使用MVC4 5 我尝试将 Twitter API 集成到我的应用程序中 但没有成功 您能帮助我如何将 Twitter API 集成到我的应用程序中吗 我已经创建了 twitter API 详细信息如下 OAuth 设置
  • Swift 4 JSON Codable - 返回的值有时是一个对象,其他是一个数组

    我从 API 获取的数据返回单个对象 但当有多个对象时 它会返回同一键中的数组 对于我正在使用的当前模型 结构 当数组出现时解码会失败 这些结果是随机排序的 这意味着我不知道何时会收到对象或数组 有没有办法创建一个模型 考虑到这一事实 并可
  • 数据库设计 - 是否应该避免一对一关系? [复制]

    这个问题在这里已经有答案了 可能的重复 是否存在使用数据库 1 1 关系有意义的时候 https stackoverflow com questions 517417 is there ever a time where using a d