我现在需要一个这样一个数据库。
这个数据库是记录不同的用户,以及相对应的用户的数据。
每一个用户有不同的笔记本。每个笔记本有不同的分区,每个分区有不同的项。
这个可以怎么设计啊。

------解决思路----------------------
粗看大体四张表
用户表:
两个字段
user_id user_infor
笔记本表:
user_id compter_id
分区表:
comter_id partion_id
选项表:
partion_id option_id
------解决思路----------------------
三个表:
用户(ID,姓名,...)
笔记本(ID,用户ID,...)
分区(ID,笔记本ID,...)
分区中也可以加上用户ID,如果经常需要按用户进行查询的话。
------解决思路----------------------
项如果是动态的也建个表。数量少也可以作为分区的多个字段。
------解决思路----------------------
用户(主键,名称...)
笔记本(主键,用户主键,型号...)
如果每个用户的笔记本一定不同或者每个月户只有一个笔记,
也可以考虑把信息记录到用户表上,
考虑以后扩展建议单独出一张表
分区表(主键,笔记本主键...)
项目表(主键,分区主键...)
最后如果这个是类似网盘的设计,可以考虑只需要设计成两个表
一个用户表
一个树形表
------解决思路----------------------
树状表主要是处理未知层级,以便扩展层级
用户(主键,名称...)
用户笔记本关系表(用户主键,笔记本主键)注:加此表是考虑一个用户可以有多个笔记本,如果没有可以在用户表上加个笔记本字段
树状表(主键,层级类型,名称,父层级主键,路径...)
注:层级类型可以是枚举,诸如 笔记本,分区,项等
路径是一个从根层级记录到当前级主键的字段类似于:001-002-003,所记录的都是父级或是父级的父级一直到根节点的父级的主键,这个一般的树表考虑查询性能时,要有。
树状表还可以再加些扩展字段,如层级
层级是当前层在树中的层别,为1 2 3 4之类的,在某些情况可以会用的,用得不多的话,可以取消该字段
最后,路径和层级在相应的层级结构发生变化时,要相应的变更,虽然看起来麻烦了点,但是,比在一些查询时再去递归要快很多