我一般是编程和数据库的新手。到目前为止,我已经阅读了 DUmmies 第 4 版的 PHP.MYSQL,并且正在尝试创建一个我自己的数据库来存储商店的菜单/库存。我目前正在使用 XAMPP/MYSQL。
我的数据库的示例表如下:
SHOPINFO
Shopname Outlet Category Subcategory Item
PizzaHut Main Drinks Carbonated Cola
PizzaHut Main Drinks Non-carbonated Orange Juice
BurgerKing Central London Burgers Beef Whopper
BurgerKing South London Burgers Beef Whopper Jr.
BurgerKing South London Drinks Carbonated Cola
我目前想知道是否应该将上表拆分为:
SHOPINFO
Shopname Outlet Category Subcategory Item
PizzaHut Main 1 1 1
PizzaHut Main 1 2 3
BurgerKing Central London 1 5 4
BurgerKing South London 1 5 7
BurgerKing South London 3 3 2
类别、子类别和项目都被拆分到不同的表中,它们分别由其类别 ID、子类别 ID 和项目 ID 标识。
我对这个决定的两个主要问题是:
1.分桌真的有用吗?我问这个是因为查询第一个表而不是第二个表会不会容易得多?例如,我可以简单地做类似的事情
$query="SELECT * FROM SHOPINFO WHERE Shopname='BurgerKing' AND
Outlet='South London' AND Category='Drinks' AND
Subcategory='Carbonated'";
$result=mysqli_query($cxn,$query) or die("Error");
while($row=mysqli_fetch_assoc)
{
extract($row);
echo "$Item";
}
而不是如果表被拆分则必须完成的查询(我不知道该怎么做,这让我很伤心)。
2.如果我要拆分表,我猜我必须为类别、子类别和项目的每个商店创建单独的表,使用 Shopname 和 Outlet 作为主键,然后我将链接到带有外键的 SHOPINFO 表,可能使用 ON DELETE CASCADE & ON UPDATE CASCADE。主要问题是,除了使查询更加复杂之外,这样做究竟会带来什么好处?
PS:我担心的是未来的可扩展性。(例如,将来将国家、城市、州添加到奥特莱斯)
建议,帮助,意见,侮辱和燃烧表示赞赏。
谢谢!