12
回答
知无涯而生有涯 -- 两个凡是
开发十年,就只剩下这套Java开发体系了   

数年的Oracle方面的造诣 

数年的Postgresql 精深研究

仍然有需要学习的地方

可谓学无止境啊

前阵遇到某CTO, 说, 技术很简单, 业务也很简单

宏哥笑了

举报
宏哥
发帖于2年前 12回/737阅
共有12个回帖 最后回答: 2年前

引用来自“乌龟壳”的评论

准备什么时候入坑postgres内核编程?

我还在应用PG的阶段

PG内核以后让别人去做了

宏哥老了


@乌龟壳
数据库设计是应用开发的起点,至关重要.
像上面的多属性筛选是搜索中经常用到的功能,说说你是怎么设计数据表(商品表/属性表)的.

先说说我的思路:
查询请求:
search.php?category=1035&brand=212&property=669_674_689_695_700_712
1035是商品分类ID,比如手机.
212是商品品牌ID,比如小米.
669_674_689_695_700_712这一串是用户筛选的属性ID.

商品表大概结构:
自增编号(主键),名字,价格,库存,销量,所属分类,所属品牌,属性集合(全文索引)
insert into goods(id,name,price,stock,sales,category_id,brand_id,property)
values(1,'小米4',999,8000,2000,1035,212,'669 674 689 695 700 712');

上述查询请求的SQL语句如下:
select * from goods
where category_id = 1035 and brand_id = 212
and MATCH(property)
AGAINST('+669 +674 +689 +695 +700 +712' IN BOOLEAN MODE);

接下来就是设计属性表结构:
自增编号(主键),商品分类,属性分类,属性值,属性值显示顺序
insert into property(id,goods_cate,cate,value,sequence) values
(669,1035,1,'600-1199',1),
(670,1035,1,'1200-2099',2),
(674,1035,3,'dual sim dual standby',1),
(675,1035,3,'camera artifact',2),
其中669这些就是存储在商品表property属性里的ID序列.
1035指这条记录是"手机"这个分类里的属性.
1好3表示的属性里的分类,比如1表示价格属性,3表示特色属性.
最后的1和2为显示属性值的顺序,比如价格600-1199在前,1200-2099在后.
(goods_cate,cate,value)组成unique key.

查询手机这个分类下的属性:
select * from property where category_id = 1035;

--- 共有 6 条评论 ---
eechen回复 @公孙二狗 : 而淘宝的第一版却是一个名叫PHPAuction的程序,老外开发的一个拍卖网站。千里之行始于足下。一步一个脚印,别妄想一步登天。 2年前 回复
公孙二狗回复 @eechen : 马云引用胡雪岩曾说过的一句话:“有一县的眼光,做一县的生意;有一省的眼光,做一省的生意;有天下的眼光,做天下的生意”。 2年前 回复
eechen回复 @公孙二狗 @atzjg 我觉得用PHP开发的产品应该是很亲民的,应该假定我们开发的产品能运行在只有PHP和MySQL支持的虚拟主机上,当然,如果能支持PHP内置的SQLite就更好了.所以,基于这种需求,那些依赖额外的搜索服务和缓存服务的扩展,不应该是首先考虑的需求. 2年前 回复
官万人员不先去搜索引擎查找 2年前 回复
公孙二狗商品搜索直接搜索数据库,好业余的做法 2年前 回复

引用来自“小紫羽”的评论

应该是,能赚钱的技术很简单, 能赚钱业务也很简单

引用来自“宏哥”的评论

想当然了
成败在细节。哈。
--- 共有 1 条评论 ---
Ryan-瑞恩哈,一直都是起点啊。。这次怎么放后面了。 2年前 回复
顶部