一对一关系的数据库设计

2024-02-25

我正在尝试完成项目数据模型的设计,但很难弄清楚该采用哪种方式。

我有一个用户表,以及适用于该用户的未确定数量的属性。这些属性几乎在每种情况下都是可选的,因此允许空值。这些属性中的每一个对于用户来说都是一对一的。我应该将它们放在同一个表上,并在添加属性时继续添加列(使用户表相当宽),还是应该将每个属性放在一个单独的表上,并使用用户表的外键。

我决定不使用 EAV 模型。

Thanks!

Edit

属性包括婚姻状况、性别、年龄、名字和姓氏、职业等。所有都是可选的。


Tables:

  • USERS
  • 用户首选项类型代码
  • 用户首选项

USER_PREFERENCES是一个多对多表,连接USERS and USER_PREFERENCE_TYPE_CODES表。这将允许您标准化首选项类型属性,同时仍然可以灵活地添加首选项,而无需 ALTER TABLE 语句。

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

一对一关系的数据库设计 的相关文章

随机推荐

  • MethodImpl 属性在 .NET 中如何工作?

    我正在研究一些框架代码 System AppDomain GetDynamicDir 方法 这就是汇编程序显示的全部内容 MethodImpl MethodImplOptions InternalCall private extern st
  • “if”语句可以在 bitbucket 管道中使用吗?

    我尝试运行以下步骤 但它不执行 if 步骤 第5行和第6行 我很确定它们应该执行 因为测试的目录不存在 我尝试了多种格式的bash if 但他们都失败了 有没有一种方法可以测试我正在使用的条件 step name Google Cloud
  • 在 R 中从列表创建多个饼图

    我想一次创建多个饼图 我有一个名称列表 1 361 456 745 858 1294 1297 2360 2872 3034 5118 5189 因此第一个饼图应标记为 361 依此类推 然后我有几个列表 其中每个饼图都有值 1 102 9
  • UIScrollView 中的 UITableView - 如何使视图滚动,而不是 TableView 本身滚动?

    想象一下 有一个 UIViewController 里面有一个 UIScrollView 视图的顶部有一个 UIImageView 一些 UILabels 和其他东西 此外 还有一个 UITableView 其内容是动态原型 我附上一张图片
  • Selenium 2 WebDriver 实现无法正确处理可扩展菜单

    我有一个网页 单击一个按钮 例如 EXPAND CONTEXT MENU 内部实现为 href 会导致隐藏的上下文菜单在其下方展开 然后单击上下文菜单中的菜单项 由于 Selenium 2 不允许直接访问隐藏元素 因此我首先单击 EXPAN
  • 在 PostgreSQL 9.6.3 中,percentile_cont 和percentile_disc 都没有计算所需的第 75 个百分位

    使用百分位数函数 但我没有得到所需的输出 我会说 不正确 但这些功能可能按预期工作 而我只是没有正确理解它们 这些是我正在处理的数字 n 32 160000 202800 240000 250000 265000 280000 285000
  • Python 决策树 GraphViz

    我正在尝试使用 scikit learn 实现决策树 然后使用 Graphviz 可视化该树 我认为这是可视化 DT 的标准选择 我正在使用 PyCharm anaconda Python 2 7 和 OS X El Capitan 据我所
  • 如何使用GWT的SimpleEventBus或EventBus?

    我正在开发一些简单的绘图软件 需要在 swing 和 gwt 中实现 在 gwt 方面 我将使用 gwt g2d 作为画布 我希望在这两种实现中使用事件总线来简化一些软件 我的理解是它应该是这样的 实例化EventBus 实例化父控件 接收
  • 在C中提取两个特定字符串之间的字符串

    如何提取两个指定字符串之间的字符串 例如 有没有一种简单的方法可以使用它strtok 或者更简单的东西 编辑 两个指定的字符串是提取的字符串是Extract this 使用搜索第一个子字符串strstr 如果找到 则保存子字符串的数组索引
  • 取消/中止/中断 spring-android Resttemplate 请求

    我在一个专门执行 spring android 请求的线程中使用 spring android 我无法中止从 spring android 发起的请求 例如 getForObject 我尝试过了 到达底层输入流关闭但它完全包裹在spring
  • less.js 惰性工作表加载

    我想知道是否有办法加载单个less https github com cloudhead less js页面加载后的某个时间 这个问题 https stackoverflow com questions 3175013 load less
  • F# 运算符重载奇怪的行为

    假设由于某种奇怪的原因我想要这个功能 let str string 42 所以我可以做这样的事情并得到 42 结果 test val it int 42 这很好 但现在当我这样做时 let a 100 a I get error FS000
  • PHP 中的 substr_replace 编码

    我想写入一个文本文件 当我使用子字符串替换 https www php net manual en function substr replace php在 PHP 中 编码发生变化 它无法正确打印希腊字符 如果我不这样做 一切都很好 我怎
  • 如何检索 WordPress 页面的同级页面列表?

    我正在尝试在 WordPress 中创建同级页面 不是帖子 列表来填充页面的侧边栏 我成功编写的代码返回页面父级的标题 据我了解 您需要页面的 id 而不是标题 来检索页面的同级页面 通过wp 列表 页面 http codex wordpr
  • 如何防止使用 git hook 提交文件 (.json)?

    如何防止使用 git hook 提交文件 json 我有一个 json 文件仍在服务器上 所以我不能使用 gitignore 但现在我不想允许任何人更改此文件 提交它 因为它会破坏某些内容 我想使用本地钩子 我怎样才能获得提交中的特殊文件
  • 从今天开始在 Groovy 中计算年龄

    试图根据某人的生日来推测他的年龄 以下代码给出了天数 def now new Date def dob new Date 08 21 1982 println now dob 我们可以除以 365 但这并不完全准确 必须有一种简单的方法来做
  • SQL Server 中函数的返回值

    我想得到从今天开始的最后一个星期六 21 天 为了实现这一目标 我编写了如下所示的脚本 但问题是我无法成功从结果中返回值 我想在 SQL Server 中创建这个函数 并在我想要的存储过程中获取这个值 DECLARE StartDate D
  • C/C++/C# 强制窗口位于顶部

    有没有办法强制another窗口位于顶部 Not应用程序的窗口 但是another一 已经在系统上运行 Windows C C C SetWindowPos that window handle HWND TOPMOST 0 0 0 0 S
  • 为什么 HttpUtility 类无法被识别?

    我正在尝试调用静态HttpUtility UrlEncode在我的 VB NET 项目中 但 IDE 无法识别该类 并表示该类尚未声明 我已经导入了命名空间System Net and System Web到项目 我还在文件顶部添加了以下内
  • 一对一关系的数据库设计

    我正在尝试完成项目数据模型的设计 但很难弄清楚该采用哪种方式 我有一个用户表 以及适用于该用户的未确定数量的属性 这些属性几乎在每种情况下都是可选的 因此允许空值 这些属性中的每一个对于用户来说都是一对一的 我应该将它们放在同一个表上 并在