比如做一个有商品分类功能的数据库,是直接将不同种类的商品分别存在不同的表里(图一)好还是将不同类产品共有的属性存在一个表里然后不同的属性分别存在对应的表里好(图二)?
图1我能看懂你的意思,但是图2,“将不同类产品共有的属性存在一个表里”,你这句话,你想想如何实现啊?就拿你的截图来说,你手机有内存,有像素,但是衣服就没有,那么你存的话,衣服下所对应的内存和像素就是空值,这样就占用了很多空间资源,是绝对不可取的。不同商品放在不同表里是对的,因为他们属性不同,甚至完全没有交集。另外在1的基础上,你还可以建一个所有商品对应其ID的模型,这样的话就可以通过这个表直接取对应的商品数据,就相当于商品清单一样。
可以,这样用的时候建个联合,取出你需要的项目就可以,但是商品表里面还应该有个类型,这样根据类型来判断和哪个表合并。
第一种的特点就是比较清晰,每个产品的属性都很明确。第二种的特别就是共同数据一起存储,比较节省空间。
看共同属性的数据多不多吧,我推荐使用第二种,比较简洁