【发布时间】:2014-08-02 22:46:01
【问题描述】:
我是网络开发的新手,我正在尝试通过做项目来学习网络开发。
我决定建立一个网站,你可以搜索一本书的名字,结果将是用户阅读这本书的列表。
我知道这没什么用,只是想学习
我的问题是我不知道如何在数据库中存储用户阅读的书籍列表。
我只是自己找到了这两种方法来制作可以为我做这件事的数据库,但我确信这不是最快的方法。
1-我可以将它们全部存储在一个带有读者 ID 的表中,很快它们就会变得太多行并让我的网站变慢
2-我可以为每个用户创建一个表,然后在所有表中搜索一本特定的书,然后我可以返回包含该书的表所有者的名称,我认为搜索我的数据库的整个表非常慢也是。
我将非常感谢任何能回答我问题的人。 我真的被困在我的网站的这一点上 ;)
【问题讨论】:
-
'too many rows' 对于一个数据库来说很多,比你想象的要高很多。每个用户的表是not a good idea。
-
我知道我的网站只是为了学习,用户并不多,但想想 100 万用户有 100 本书,搜索会变得太多,不会吧?
-
当然。拥有 100 万用户时,您将开始无处不在遇到性能问题,但到那时您将拥有更多资源来解决这些问题。在您的示例中,将有 1,000,000 多个表的性能很多。
-
听起来像是多对多关系的情况。如果你不知道那是什么或者我为什么这么说,我听说过这本书的好东西,数据库设计为凡人。
标签: mysql sql database database-design