服务列表的 MySQL 数据库设计

标签 mysql database schema relational-database normalization

下面是我正在谈论的列表类型的预览。

enter image description here

即将发生的是每个用户都将拥有他们自己可以创建的列表。他们将能够修改标题(维护、轮胎服务)并修改每个项目并添加到其中并添加更多行。

这是我想到的数据库设计:

标题: id - name - user_id

  • 1 - 维护 - 1
  • 2 - 轮胎服务 - 1

服务: id - title_id - name - user_id

  • 1 - 1 - 雨刷片 - 1
  • 2 - 1 - 冷却系统 - 1
  • 3 - 2 - 轮胎换位 - 1
  • 4 - 2 - 车轮平衡 - 1

这是一个不错的架构吗?我试图将它保留在一个表中,并且只有一个“标题”或“服务”的“类型”字段,但后来意识到如果它是一项服务,我不知道如何指定它应该在哪个标题下.

只是想学习如何以正确的方式做事,想知道在这种情况下你们会怎么做,这是否是个好主意?

谢谢!

最佳答案

根据我对您要实现的目标的假设,您不需要 services 中的 user_id,因为您可以从相关的 title.

关于服务列表的 MySQL 数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8566600/

相关文章:

mysql - 如何在额外列中显示值的计数

mysql - 将 Null 与 MySQL 触发器中的另一个值进行比较

mysql - 使用 `sqlalchemy.types.JSON` 数据类型通过 SQLAlchemy 查询 JSON

mysql - 在数据库书架中创建表,其中一本书可以有多个类别

mysql 以优化的方式向大表添加多列

mysql - 是否可以在 sqlite 数据库中使用相同的索引名称?

php - Swift:如何查询外部数据库执行登录?

sql-server - SQL SERVER ODBC 错误(对象名称无效),但是当我添加 SQL 查询 mydb.dbo.mytable 时一切正常

oneOf 对象的 Json Schema 示例

database - PostgreSQL:为什么 DROP DATABASE databaseName 在 psql 中保留已删除数据库的模式和关系?