表中的最佳实践数据库前缀?

时间:2018-08-08 07:55:29

标签: database database-design

我有一个数据库,其中包含用户和这些用户的待办事项列表(还有很多表,但这无关紧要)。

一个用户可以有多个待办事项,但是一个项目只能链接到一个用户。

我想知道如何为待办事项创建表格?
-我可以这样称呼它吗:todo-items
-我应该称呼它为用户:users_todoitems
-我应该给它加上一个前缀,例如:u_todoitems吗?

我尝试搜索有关此类问题的最佳做法,但找不到合适的答案。

1 个答案:

答案 0 :(得分:1)

拥有不同的用户表取决于您希望数据库设计如何规范化。 如果您考虑得很深,待办事项实际上就是可以完成多个任务的清单。因此,将待办事项列表连接到用户而不是连接任务更合乎逻辑。因此,一个用户可以有多个任务列表,而每个任务列表可以具有多个任务。

我建议使用以下表格设计:

users

  • user_id(主键)
  • other_fields

user_todo_lists

  • todo_list_id(主键)
  • user_id_fk(外键)

todo_list_tasks

  • task_id(主键)
  • todo_list_id_fk(外键)
  • task_name
  • other_task_fields

即使您对user的最差查询甚至没有一个待办事项,该设计也能很好地工作。在这种情况下,您的搜索仅限于user_todo_lists表,而不是庞大的todo_list_tasks表。