何时在数据库表之间使用一对一关系?

2024-01-22

一个数据库设计问题:你什么时候决定使用1对1关系表?

我看到这种情况的地方之一是,例如,当您有一个 User 和 UserProfile 表时,人们会将它们分开,而不是将所有列都放在 User 表中。

从技术上讲,您可以将所有列放在一个表中,因为它们的关系是一对一的。

我知道有人说,对于 UserProfile 表,随着时间的推移,您需要更改表以添加更多列,但我真的不认为这是拆分表的有力理由。

那么,如果我要设计一个 User 表和 UserProfile 表,我是否只在一张表中完成它更好?


我唯一一次使用 1 对 1 关系是当我希望它多态地属于多个对象时。

例如地址。一个用户有一个地址,一个商家有一个地址,一家特色餐厅有一个地址。所有实例都在同一个表中处理,并具有相同的管理代码。可以将其视为重构数据模型,以便可以在其他地方重用它。

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

何时在数据库表之间使用一对一关系? 的相关文章

  • 字符集和排序规则到底是什么意思?

    我可以阅读MySQL文档而且非常清楚 但是 如何决定使用哪种字符集呢 校对对什么数据有影响 我要求解释这两者以及如何选择它们 来自 MySQLdocs http dev mysql com doc refman 5 0 en charset
  • 如何:SQL 还是 NOSQL?

    我还没有遇到过这个问题 但这就是我的想法 非常肤浅和简单化恕我直言 如果您有键值类型的存储 并且所有访问都是键查找 请使用 NOSQL 解决方案 如果您想要基于值 和子值 进行查找或者有一些更复杂的东西 例如联接 您会选择关系解决方案 事务
  • InnoDB 或 MyISAM - 为什么不两者都使用呢?

    我读过各种关于两者之间哪个更好的主题InnoDB and MyISAM 看来争论的都是使用还是其他 根据表的不同 是否不能同时使用两者 这样做会有什么缺点 据我所知 发动机可以在CREATE TABLE命令 因此 某些经常读取的表可以设置为
  • 将数据从 MS SQL 导入 MySQL

    我想从 MS SQL Server 导入数据 通过某种正则表达式运行它以过滤掉内容 然后将其导入 MySQL 然后 对于每个查询 我希望显示来自第三个数据库的相关图像 明智地导入和链接 最简单的方法是什么 谢谢 澄清 它是一个 PHP 应用
  • Django 选择性转储数据

    是否可以有选择地过滤哪些记录Django的dumpdata管理命令输出 我有几个模型 每个模型都有数百万行 我只想转储一个模型中符合特定条件的记录 以及引用任何这些记录的所有外键链接记录 考虑这个用例 假设我有一个生产数据库 其中我的用户模
  • 当两个表非常相似时,什么时候应该将它们合并?

    我有事件和照片 然后对两者进行评论 现在 我有两个评论表 一个用于与事件相关的评论 另一个用于照片评论 架构与此类似 CREATE TABLE EventComments CommentId int EventId int Comment
  • 非规范化如何提高数据库性能?

    我听说过很多关于非规范化的内容 它是为了提高某些应用程序的性能而进行的 但我从来没有尝试过做任何相关的事情 所以 我只是好奇 规范化数据库中的哪些地方会使性能变差 或者换句话说 非规范化原则是什么 如果我需要提高性能 如何使用此技术 非规范
  • 是否需要连续编号?

    我正在开发一个 winform NET 应用程序 其中包括订单 发票 服务订单 票务等 这些实体在对其 ID 进行编号时是否必须按顺序排列 国际海事组织没有 以一个订单为例 它只有通过业务层才有效 在此过程中 可能已经创建了另一个订单 批准
  • 数据库设计1对1关系

    我的数据库设计不正确 我应该在开发过程中解决这个问题吗 假定 user 表与 userprofile 表具有 1 1 关系 然而 实际设计中 用户 表与 用户配置文件 表具有 1 关系 一切正常 但无论如何应该修复它吗 做一件事 User
  • Cassandra 与 ZooKeeper 的事务 - 这有效吗?

    我正在尝试在 ZooKeeper 的帮助下为 Cassandra 实现一个事务系统 由于我认为我在数据库实现方面没有足够的经验 所以我想知道我的想法原则上是否可行 或者是否有任何重大缺陷 以下是步骤的高级描述 识别所有要编辑的行 键 和列
  • 淹没在空无的海洋中

    我继承的一个应用程序跟踪对材料样品执行的实验室测试结果 数据存储在单个表 tblSampleData 中 其主键为 SampleID 并有 235 列代表潜在的测试结果 问题是每个样本仅执行少量测试 因此每行包含超过 200 个空值 实际上
  • 在关系数据库中存储 1:1 用户关系的最佳方式

    存储用户关系的最佳方式是什么 例如友谊 在关系中必须是双向的 你是我的朋友 因此我是你的朋友 数据库 例如MYSql 我可以想到两种方法 每当一个用户与另一个用户成为好友时 我都会向数据库添加两行 其中 A 行由发起用户的用户 ID 和下一
  • 当您有两种类型的记录时,该表的最佳数据库设计是什么

    我正在跟踪练习 我有一个workout表与 id 练习ID 外键进入练习表 现在 一些练习 例如重量训练 将包含以下字段 重量 次数 我刚刚举起 10 次 100 磅 跑步等其他练习将包含以下字段 时间 距离 我刚刚跑了5英里 花了1个小时
  • Rails 中多表单复选框的数据库结构

    我正在开发一个 Rails 应用程序 允许用户创建时间表 这样做时 他们应该能够选择事件发生在一周中的哪几天 我计划在表单中执行此操作的方式是每个工作日旁边有一个复选框 如下所示 etc 然而 我发现这可能不是处理这个问题的非常有效的方法
  • 在 StackOverflow 克隆中,评论表与问题和答案应该有什么关系?

    在我正在构建的类似于 StackOverflow 的应用程序中 我试图确定我的关系Questions Answers and Comments表应该有 我本可以有Questions and Answers两者都由一个表表示Posts 那将允
  • 如何将商品与定价数据正确关联,同时考虑价格变化历史记录

    事实上 所有 POS 系统都会在销售时将商品的价格直接记录到交易表中 因为该价格可能会在以后发生变化 但其销售价格应保持不变 我想知道如何设置保留价格变化历史记录的定价表 以便您可以根据商品及其销售时间将交易与该表关联起来 以获得正确的价格
  • MySQL标签中如何存储标签,总共一个字段还是每个标签一个字段?

    我正在开发一个接近 stackoverflow com 的产品 发帖者需要为其问题或任务输入标签 如何将这些标签存储在数据库中 是总共一个字段 列 还是一个标签一个字段 列 我觉得多对多 http en wikipedia org wiki
  • 一个大连接或多个查询哪个提供更好的性能?

    我有一个名为订单的表 订单上的一列是 customer id我有一个名为 customers 的表 有 10 个字段 给定两个选项 如果我想构建订单对象数组并嵌入订单对象中的是客户对象 我有两个选择 选项1 A 首先查询订单表 b 循环遍历
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • 用于捕获审计跟踪的数据库设计的想法[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何维护数据库中的数据日志 我必须维护对每一行所做的每次更改的日志 这意味着我不能允许DELETE and UPDATE待执行 我怎样才能保留这

随机推荐

  • 处理 IDisposable 对象处置的通用函数

    我正在开发一个处理大量 Sql 对象的类 Connection Command DataAdapter CommandBuilder 等 在多个实例中 我们有这样的代码 if command null command Dispose if
  • iOS:以编程方式创建 UIWindow 导致位置错误

    在 iOS 5 1 1 中 我发现如果我创建 UIWindow 我厌倦了 IB 并将其框架设置为 UIScreen mainScreen bounds 则窗口会显示状态栏下 然而 如果我在 iOS 6 上做同样的事情 它就会出现在状态栏正下
  • Json 对象数组长度

    我正在使用一些类似于以下内容的 Json Apps Name app1 id 1 groups id 1 name test group 1 desc this is a test group id 2 name test group 2
  • 将 DVCS 与 Visual Source Safe 相结合

    我在工作中被迫使用 Visual Source Safe 2005 我想将其与 DVCS 结合起来 这样我就可以在本地签入文件 而不会在出现错误或无法编译时打扰我的同事 在我对 Mercurial 的尝试中 它有效 但会导致一些奇怪的问题
  • Azure 角色间同步

    我想知道同步运行相同角色的多个 azure 实例的最佳实践 更准确地说 我想防止多个工作角色在同一工作单元上工作 Azure 队列似乎对这个问题没有帮助 一种选择是使用带有锁和存储过程的 sql 表 但是在Azure中使用sql同步似乎有点
  • 酒庄类型的索引在哪里?

    我想构建一个备用的 Winery 模式解码器 所以我查看了一些编码模式 Codec Winery gt B unpack serialiseSchema schema Proxy Proxy Void 4 5 0 Codec Winery
  • 在 Elasticsearch 中建模父/子关系(产品/产品变体)

    使用 ES 或 Solr 对产品变体进行建模让我大吃一惊 考虑 人为的例子 不同的产品 例如 T 恤 每个产品都有一组属性 productid name desc brand color popularity 每个产品都有一组具有属性的产品
  • 为什么我们不能有静态外部类[重复]

    这个问题在这里已经有答案了 为什么我们不能创建外部的静态类 我在这个社区中阅读了该问题的答案 但还没有得到完美的答案 有人可以帮我一个确切的答案吗 static class A void display System out println
  • Excel 文件格式无法用 Pandas 确定,随机发生

    我有一个编辑 xlsx 文件的脚本 一年半以来我每周都成功运行 直到上周开始出现此错误 Excel file format cannot be determined you must specify an engine manually d
  • Excel VBA查询外部.aspx页面并检索数据

    我已经为此苦苦挣扎了大约一天 基本上 我想编写一个 Excel 宏来循环遍历 Excel 中的列表 查询网页并检索一些数据 理想情况下 我只想检索所需的数据 以便将其放置在相邻的单元格中 但此时我会尽一切努力 页面是ASP net 我没有经
  • 有没有 XSLT 处理命令行工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我想通过 XSLT 文件和 XSLT 处理工具将 XML 文件更改为修改后的 XML 文件 例如 xs
  • 在 Objective C 中通过 POST 上传图像

    我目前正在通过 HTTP Post 将图像上传到服务器 但似乎无法找到构建调用该服务的 url 的方法 用户从库或相机中选择图像 然后调用执行插入语句的 json 服务 该服务需要以下 uritemplate DataTransfer Se
  • 使用 setup.py 自定义 python 包目录布局

    假设我有以下目录结构 src python generated init py a py lib init py b py 我的是什么setup py需要看起来像这样才能创建目录布局如下的 dist src python init py a
  • 使用任务并行库时如何处理所有未处理的异常?

    我正在使用 TPL 任务并行库 http msdn microsoft com en us library dd460717 28v VS 100 29 aspx 在 NET 4 0中 我想通过使用集中所有未处理异常的处理逻辑Thread
  • 在 pandas 数据框中映射值的范围[重复]

    这个问题在这里已经有答案了 如果之前有人问过这个问题 我深表歉意 但我广泛查看后没有结果 import pandas as pd import numpy as np df pd DataFrame data np random randi
  • Javascript 对 dom 的更改在按下后退按钮时丢失

    我有这个视图可以更改 div 内的文本 然后 用户可以单击链接跳转到另一个页面 但是当用户按下 后退 按钮时 所有 DOM 更改都会丢失 FF 会记住更改后的 div 文本 但 Chrome 和 IE 不会 我发现了类似的问题 但就我而言
  • CakePHP 3 上未找到“Locale”类问题

    我刚刚下载了文件这个链接 http bakery cakephp org articles lorenzo 2014 09 28 cakephp 3 0 0 beta2 released 提取并尝试执行 但出现此错误 Fatal error
  • 获得黑暗的外观和感觉? [复制]

    这个问题在这里已经有答案了 我厌倦了 Swing 的标准外观和感觉 需要一些看起来很酷的深色和黑色主题 作为秋千一部分的 DefaultMetal Ocean Motif 或 Windows 都不能满足我的需求 正在使用漂亮的图形用户界面
  • 如何在Eclipse中指定C++系统包含路径?

    GCC 有选项 isystem 将目录视为系统目录 这样就不会为这些目录生成编译警告 但是我在 Eclipse 中找不到类似的设置 我使用的是 Mars 2 Release 4 5 2 已尝试在 项目属性 C C 常规 预处理器包含路径 宏
  • 何时在数据库表之间使用一对一关系?

    一个数据库设计问题 你什么时候决定使用1对1关系表 我看到这种情况的地方之一是 例如 当您有一个 User 和 UserProfile 表时 人们会将它们分开 而不是将所有列都放在 User 表中 从技术上讲 您可以将所有列放在一个表中 因