如图 ,请注意这只是一个可行的方案,并不是唯一解
(price单位建议用分,用int存储,避免浮点数精度问题)
语言,或者其它杂七杂八的属性你可以放到property属性表,然后具体书是否具有哪个属性在book_property里面加一行记录
分类因为展现比较频繁,所以单独列出,考虑一个关联表book_category的原因是不知道是否允许一本书出现在多个分类里面,如果一本书限死一个分类,那这个book_category可以省略,book表加一列category_id
另外,高阶的搜索和筛选功能你需要搜索引擎,Elastic Search, Sphinx, Xunsearch,Solr等等,你用MySQL一方面性能太差另一方面SQL太复杂,稍微深入之后你可以试着接入