プログラミングとデータベース全般に不慣れです。これまでに 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 によって識別されます。
この決定に関して私が持っている2つの主要な質問は次のとおりです。
1.テーブルを分割することは本当に有益でしょうか? 2番目のテーブルよりも最初のテーブルをクエリする方がはるかに簡単ではないので、これを尋ねていますか? たとえば、私は単に次のようなことをすることができます
$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 を主キーとして使用して、カテゴリ、サブカテゴリ、アイテムのショップごとに個別のテーブルを作成する必要があると思います。おそらく ON DELETE CASCADE と ON UPDATE CASCADE を使用して、外部キーを持つ SHOPINFO テーブル。主な問題は、クエリをより複雑にすることを除けば、これを行うと正確にどのような利点があるかということです。
PS: 私の懸念は、将来のスケーラビリティに関するものです (例: 将来、国、都市、州をアウトレットに追加するなど)。
アドバイス、ヘルプ、意見、侮辱、炎上は大歓迎です。
ありがとう!