Eri*_*ric 9 mysql database relational-database
我有一个问题,我的实现想法是否易于使用/写入查询.
我目前有一个包含多列的数据库.大多数列都是相同的(项目,但分为项目1,项目2,项目3等).
所以我目前在我的数据库ID,名称,项目1,项目2 ......项目10.
我想将其浓缩为ID,Name,Item.
但我想要的项目是将多个值存储为不同的行.即
ID = One Name = Hello Item = This
That
There
Run Code Online (Sandbox Code Playgroud)
有点像它看起来的格式.这是一个好主意,我将如何做到这一点?我将不在数据库中使用任何数字,所有信息都将是静态的,永远不会改变.
我可以使用1个数据库表(并且很容易将一个ID的项目与另一个ID匹配),或者我是否需要创建2个表并链接它们?
如果是这样,我将如何创建2个表并使它们成为关系?
有关如何实现这一点的任何想法?谢谢!
这是一种经典类型的非规范化数据库.非规范化有时会使某些操作更有效,但更常见的是导致效率低下.(例如,如果您的一个写入查询是要更改与id关联的名称,则必须更改许多行而不是单个行.)非规范化应仅在完全规范化的数据库之后由于特定原因而完成设计的.在您的示例中,规范化数据库设计将是:
table_1:ID(密钥),名称
table_2:ID(映射到table_1.ID的外键),Item
我认为在这种情况下一张桌子真的没有意义。相反,你可以这样做:
Main Table:
ID
Name
Item Table:
ID
Item #
Item Value
Main_ID = Main Table.ID
Run Code Online (Sandbox Code Playgroud)
然后当你进行查询时,你可以做一个简单的连接
| 归档时间: |
|
| 查看次数: |
9287 次 |
| 最近记录: |