我真的只是一个业余爱好者,抱负太远了,也就是说,我正在努力找出创建数据库的正确方法,以便数据库更改不需要客户端重构,而且速度也很快。请回答,就好像我不太了解典型的开发或 DBA 术语一样。
情况:我试图确定每个用户评价了多少本书。如果一本书具有以下任何两个,我会认为它被评为:
-Overall rating (ratings table)
-sub rating (ratings table)
-tag (book_tags table)
-list (book_lists table)
*Related tables: users, tags, lists
问题:我有 10 个子评级和两个总体评级都在评级表中,每一个都在一列中(猜测这很糟糕,但不确定)。我是否应该有一个评级表(12 行)和一个 book_ratings 表,其中评级表的每一行都是用户的评级类型?
-e.g. book_ratings: id | user_id | book_id | rating_id
如果是,如果 book_ratings 表上有 500k 本书,每本书有 12 种评分类型,10,000 个用户和总共 50 亿行,会发生什么?那会跑得超级慢吗?另一个考虑是我将来可能想添加更多的子评分类型,这也是我认为更改它可能很有价值的部分原因,但工作量很大,所以我想先检查一下。
谢谢!