设计了一个商品的数据表结构,请问合理吗?

时间:2021-06-18 14:28:27
申明下,目前本人的程度属于:菜到不能菜的程度,并且 学习ing。
想通过写一个例子来进行实际锻炼下,后期将用的框架是SSH。
所以请各位老鸟不吝赐教~!!谢谢!!!
请看下图~
设计了一个商品的数据表结构,请问合理吗?
如果图片太宽:请右键--新标签页中查看图片,谢谢~
下面是各表的描述:

_type 表:商品大类,比如:家具、家居、建材
_type_info 表:具体类型,比如:沙发、桌子、椅子、床等。
_goods 表:商品具体属性表,比如:名字、价格、品牌、封面、照片等(其实我一直想知道,产品另设一个封面属性有必要吗?)
_goods_type 表:中间表,将产品和种类进行链接。
_goods_att 表:属性大类表,比如:更多信息、包装信息
_goods_att_info 表:具体属性,比如:设计师、颜色、产地、尺寸等,因为不同的产品包含的属性也不同,所以每个产品的属性都是不确定的。
_goods_att_value 表:具体的属性值,比如:XXX设计师、红色、黄色、中国、20*20cm等相关属性值
_click_list 表:点击排名表,我想知道每个产品被点击了多少次,并且前X位的排名情况。

好了表介绍完了,让后想问下:
1、请问上述表的结构设计合理吗?
2、每个id名都是:表名+id 这样合理吗?因为我拍如果都写成id的话将来传值会搞错。
3、如果我还想设定每个产品的时限(就是到了时间就下架),那么是另外再加张表,还是直接写在_goods表中更好?因为我主要考虑到可能会调取所有已下架产品,然后可能要一次性删除这些数据,如果写在 _goods 表里面,每次都要判断下效率高还是在单独在另外一张表中判断效率高?
4、如果我要人为控制某个产品在页面上显示的位置(包括已下架产品,重新上架),那么我该怎么办呢?

就这四个问题,还请大家多多指点啊!!

9 个解决方案

#1


把FK都去掉 一点用没有

#2


如果我用Hibernate先建实体类的话,难道不需要导航吗?

#3


为什么不要外键呢?

#4


仅从ER图上看没什么不合理的。

引用
2、每个id名都是:表名+id 这样合理吗?因为我拍如果都写成id的话将来传值会搞错。
这个也是常见的方法。没什么不好。

建议最好有实际记录的样本,这样别人容易理解分析。

#5


引用
为什么不要外键呢?
外键要不要,说法不同,没有定论。 从数据库的角度来说,一般使用外键。

#6


引用 5 楼  的回复:
引用为什么不要外键呢?外键要不要,说法不同,没有定论。 从数据库的角度来说,一般使用外键。

好的,我往里填点数据

#7


跟上面结构图有一些出入,应该说是修正了结构图的错误。

设计了一个商品的数据表结构,请问合理吗?

1、大家看看这样设计合理吗?
2、如果我想控制goods的排名位置,要怎么做呢?如果主页上一共可以显示20个产品,我要如何控制某个产品(可能是已下架)在主页上显示的位置呢?

#8


从图中看没有什么不合理的。关键与实际的应用要相结合的。

#9


呵呵,主要是自己太菜了,没啥自信。

那有谁知道如何控制商品的展现的位置呢?

假设主页上可以显示20个产品,而产品的显示是通过从数据库中自动调取最新插入的数据来排列,那么如果说在某个位置上对某一产品制订或者将之前的产品重新安排在最上面的位置,这个从数据库上怎么设计呢?

#1


把FK都去掉 一点用没有

#2


如果我用Hibernate先建实体类的话,难道不需要导航吗?

#3


为什么不要外键呢?

#4


仅从ER图上看没什么不合理的。

引用
2、每个id名都是:表名+id 这样合理吗?因为我拍如果都写成id的话将来传值会搞错。
这个也是常见的方法。没什么不好。

建议最好有实际记录的样本,这样别人容易理解分析。

#5


引用
为什么不要外键呢?
外键要不要,说法不同,没有定论。 从数据库的角度来说,一般使用外键。

#6


引用 5 楼  的回复:
引用为什么不要外键呢?外键要不要,说法不同,没有定论。 从数据库的角度来说,一般使用外键。

好的,我往里填点数据

#7


跟上面结构图有一些出入,应该说是修正了结构图的错误。

设计了一个商品的数据表结构,请问合理吗?

1、大家看看这样设计合理吗?
2、如果我想控制goods的排名位置,要怎么做呢?如果主页上一共可以显示20个产品,我要如何控制某个产品(可能是已下架)在主页上显示的位置呢?

#8


从图中看没有什么不合理的。关键与实际的应用要相结合的。

#9


呵呵,主要是自己太菜了,没啥自信。

那有谁知道如何控制商品的展现的位置呢?

假设主页上可以显示20个产品,而产品的显示是通过从数据库中自动调取最新插入的数据来排列,那么如果说在某个位置上对某一产品制订或者将之前的产品重新安排在最上面的位置,这个从数据库上怎么设计呢?