gpt4 book ai didi

mysql - 我应该如何存储类似的实体 - 在一个表或多个表中?

转载 作者:行者123 更新时间:2023-11-29 10:42:57 27 4
gpt4 key购买 nike

我正在创建一个简历网站,但与大多数网站不同的是,我尝试使用数据库来制作它。我的意思是,通常此类网站是静态的,所有信息都硬编码在 HTML 中。由于我是后端开发人员,因此我喜欢将所有内容(包括按钮和欢迎消息)都从数据库中获取。我正在尝试存储我从事过的项目。有以下几种类型:

  1. Github Repository - 一个纯粹在 github 上完成的项目。
  2. 与工作相关 - 我在工作中完成的一个项目,没有 github 存储库,只有查看最终结果的链接
  3. UpWork 或其他自由职业网站 - 作为一名自由职业者,我有一些项目需要修复网站上的某些内容,这些项目只能在我的个人资料中查看,我想列出它们并附上 UpWork 的链接或任何有相关信息的地方我正是被雇来做这件事的。

现在我的问题是 - 我是否应该为这些类型的项目拥有不同的实体并因此使用不同的表,或者我应该在一个表中拥有所有可能的属性。例如,如果是 Github,则有 repository 字段,如果与工作相关,则有 company 字段。如果是自由职业者,它会链接到我受雇的网站。还有不同的子类型 - Web 应用程序、桌面应用程序、游戏等。

正如您所猜测的,更改很小(1 或 2 个属性)。我可以很容易地保留一些属性为空并拥有另一个属性projectType,但这是正确的方法吗?我应该为它们设置不同的表和实体吗?

提供一些信息 - 我可以使用 MySQL 和 NoSQL,但我还没有决定我的网站应该在哪一个上创建。我目前正在考虑NoSQL。这意味着我要问如何在 MySQL 和 NoSQL 上存储项目(我所说的 NoSQL 是指 MongoDB)。如果有帮助,我选择的语言是 PHP (MySQL) 和 JavaScript (NoSQL)

我知道通常没有代码的问题会被否决,但这更多的是一个基于逻辑的问题,因为我知道如何去做,但我不知道适合我的情况的最佳实践。这里所说的是给你的一个小代码 -

console.log('提前谢谢您')

最佳答案

MongoDB 非常适合这种情况。

您可以创建一个集合,其中文档会省略某些字段(如果该类型不需要这些字段)。 MongoDB的查询参数可以查看$exists如果需要的话,可以在字段上使用,并且文档可以有效存储,只在需要字段的地方占用内存。

您甚至可以设置稀疏索引,但并非每个文档都需要该索引。只要您的核心文档结构相同,最好将它们保留在一个集合中,并根据它们的类型进行变化。

关于mysql - 我应该如何存储类似的实体 - 在一个表或多个表中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45136893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com