gpt4 book ai didi

mysql 设计 : verbose tables

转载 作者:行者123 更新时间:2023-11-29 04:12:28 29 4
gpt4 key购买 nike

考虑重新设计数据库。想知道与以下内容有什么区别/注意事项:

users    fields  
----- ------
id id
user_id
page_id
field_id
field_data

相对于

users    address  
----- ------
id id
user_id
street1
street2
etc...

使用前者是否存在我没​​有考虑到的问题?如果/当字段表变大时,性能会受到影响吗?这只是不好的做法吗?出于某种原因,这让我想到了 nosql,但我可能错了。

谢谢!

最佳答案

您概述的第一种方法是“属性(property)袋”;这意味着将针对您的用户存储的数据集缺乏结构。第二种方法更像是一种结构化方法,其中您有一个包含特定条目等的特定地址表。

您拥有的数据类型真正决定了哪种方法合适。对于大部分非结构化或不确定的数据,属性包方法非常合适;但是,如果您知道每个用户肯定都会有一个地址,并且地址的结构将采用精确的形式,那么在这种情况下有一个地址表是有意义的,其中包含特定的值列。

确定这些类型的结构中哪一种真正合适是关于对您将接收的数据及其固有结构(如果有)有一些了解或期望。我经常看到这两种方法的混合,在每条记录都有一组众所周知的、结构良好的数据的情况下,还有一组(潜在的)非(非)结构化数据可以(但可能不会)添加记录。

编辑:为了具体解决性能问题,是的,在第一种情况下,当表变大时,性能可能会成为一个问题。甚至在表变大之前,性能也会成为一个问题,具体取决于您需要运行的查询类型。使用属性包方法会妨碍您使用索引来加速查询的能力(例如,对邮政编码进行索引)。

关于mysql 设计 : verbose tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6526629/

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