我对编程和数据库一般都不熟悉。到目前为止,我已经阅读了PHP.MYSQL for DUmmies第4版,并试图创建一个存储商店菜单/库存的我自己的数据库。我目前使用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
凡类别,子类别和项目都拆分成不同的表,它们分别由其CategoryID,SubCategoryID和ItemID标识。
上的两个重要的问题,我已经对这项决定是:
1.Would它确实是有益的,拆表吗?我这样问,因为查询第一张表而不是第二张表会容易得多? E.g我可以简单地这样做
$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.如果我要拆分表格,我猜我必须为每个商店的Category,SubCategory和Item创建单独的表格,使用Shopname & Outlet作为主键,我会然后使用外键链接到SHOPINFO表,可能使用ON DELETE CASCADE & ON UPDATE CASCADE。主要的问题是,除了使查询更加复杂之外,究竟会带来哪些好处?
PS:我的担忧有关未来的可扩展性(延续增加的国家,城市,国家在未来的奥特莱斯)
咨询,求助,意见,侮辱和烈焰红唇赞赏。
谢谢!
我会将此添加为评论,而不是我原来的答案的一部分:不要试图将价格添加到分支产品表中。虽然这允许分支机构以不同的价格销售相同的产品,但这也是不正确的,因为没有记录历史记录。您需要一个带有分支,产品,价格和日期的单独表格,以便正确存储这些信息。 –
我很感谢你的回答。我的确在想Excel,特别是把所有东西都放到一个巨大的表格中,然后通过过滤器分类出来。 –