应该使用一个数据表还是多个数据表?

数据表 地区 歌手,想问下那个方案更合理

方案一: 只有一个歌手表里面有地区地段 ;

id:1  singer:林俊杰  area:新加坡 age:22 Introduction:1981年3月27日出生于新加坡,

方案二:;

singer表
id:1  name:林俊杰  area_id:1 age_id:1 Introduction_id:1 
area 表
id:1 name:新加坡
age 表
id:1 name:22
Introduction
id:1 name:1981年3月27日出生于新加坡,

模板内会使用 地区 作为搜索条件,我该如何选择方案几?数据会有很多条以及为什么该这样选择呢?谢谢

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6

这个要看你这个地区是什么属性了
1.普通字符串:可以随便填写
2.普通字符串:不能随意填写
3.组合字符串:如省市区
第一个可以不用分表,第二个和第三个需要分表

4年前 评论
李小明 (楼主) 4年前

经验限制了想象力的我,觉得最多两个表,singerarea,因为 area 是可复用的,标准化的,可以作为独立存储的对象。

ageinteger 类型,introduction 不能标准化,所以都不需要再定义一个类型(表),可以直接搜索。

4年前 评论
李小明 (楼主) 4年前
Complicated

无所谓哪种是对的,看你的需求,如果你经常是查询name这个字段,其他的都是附带,或者偶尔查一下,,那就可以把name单独存一个表,其他的信息用id,然后连表查,如果singer的各种信息都需要用的,,一查就查整个人的Info,,那方案1还是比较合适的

4年前 评论
lochpure

我这边通常是会有一个地区表,地名+编码;然后其他信息就在User用户表中了

4年前 评论
Complicated

@Jouzeyu 恩,我的意思是说,,其实怎么设计表,是根据每个项目的情况来的,你做项目多留意留意,,以后自然会有知道选哪种设计方案了

4年前 评论
lochpure 4年前
qiuyuhome

可以去看看 数据库的 三范式, 答案就揭晓了.

第二范式: 没有包含在主键中的列必须完全依赖于主键,而不能只依赖于主键的一部分.

你的 area 字段, 应该拿出来.

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!