【发布时间】:2015-08-23 19:55:43
【问题描述】:
我正在构建一个电子商务平台(PHP + MySQL),我想为产品添加一个属性(功能),能够指定(启用/禁用)特定城市的销售状态。
这里是简化的表格:
城市
id name
==========
1 Roma
2 Berlin
3 Paris
4 London
产品
id name cities
==================
1 TV 1,2,4
2 Phone 1,3,4
3 Book 1,2,3,4
4 Guitar 3
在这个简单的示例中,很容易查询(使用 FIND_IN_SET 或 LIKE)来检查特定城市的产品可用性。 这对于本示例中的 4 个城市甚至 100 个城市都可以,但对于大量城市和非常多的产品来说是否实用?
为了更好的“性能”或更好的数据库设计,我应该在查询中添加另一个表到表中(productid、cityid、status)吗?
可用性
id productid cityid status
=============================
1 1 1 1
2 1 2 1
3 1 4 1
4 2 1 1
5 2 3 1
6 2 4 1
7 3 1 1
8 3 2 1
9 3 3 1
10 3 4 1
11 4 3 1
【问题讨论】:
标签: mysql e-commerce