SELECT * FROM product
left join product_name on product_name.product_id = product.id
left join product_price on product_price.product_id = product.id
left join name_country on name_country.name_id = product_name.id
left join price_country on price_country.price_id = product_price.id
where name_country.country_id = 1
and price_country.country_id = 1
表结构如下
想实现本地化(并且需要可排序),所以这么设计,不知道有没有更好的方法。
如何才能不 where 2 个表的 country_id 呢?因为需要本地化的信息还很多,可能拆分出10个小表。这样就需要 where 10 个表的 country_id
1
heaton_nobu 2014-10-11 15:42:44 +08:00
我经验比较浅,没见过这样的表结构设计
如果你觉得改动很多country_id麻烦的话可以设一个变量 |
2
TangMonk 2014-10-11 15:44:33 +08:00
建议查考下一些开源的ecommerce表结构, prestashop什么的
|
3
coosir 2014-10-11 15:44:41 +08:00 1
难道不是把name和price放到一个表里面……
|
4
oott123 2014-10-11 15:51:47 +08:00 via Android
本地化和拆表有啥关系…
你直接一个表放进去不行么,一行就是一个语言,然后另外搞个表关联相同商品的不同行。 product_i18n |--product_id--|--piece-id--|--language--| product_piece |--id--|--name--|--....--| |
5
shyrock 2014-10-11 15:52:17 +08:00
说实话没看明白name表和name_country表的设计,意思是name_country表包含了对name的本地化字符串?
|
6
changsha OP |
7
imn1 2014-10-11 16:36:39 +08:00
这头像真气人,我抓起报纸想去驱赶……&%@(*@&)@#&(*^$^!
|