CMSのためにmenus
テーブルを設計したいと思います。私はすでにcategories
とcontents
テーブルを持っています。メニューは特定のカテゴリまたはコンテンツへのリンクであるか、または他のウェブサイトからのURLであってもよい。データベースデザイン:CMSのメニューテーブル
どのように各メニューを定義することができますカテゴリまたはコンテンツですか? category_id
、content_id
、およびurl
の列はすべてnullです。
これは良いアプローチですか?何が最善の方法ですか?
menu_type
という名前の列を追加して、この値を持つメニューのタイプ(URL、カテゴリ、またはコンテンツ)を定義する必要があります。次のような別のテーブルを作成する必要がありますか?
id |タイプ名
1 |カテゴリ
2 |コンテンツ
3 | URL
と、コンテンツタイプ2のmenu_type列の挿入1 ...外部キー?
ありがとうございます。
タイプに特に関連する特別な属性がない場合は、 'enum()'カラムを使用できます。それによって、文字列 "category"、 "content"、 "url"は一度だけ保存され、IDは各レコードに格納されます。しかし、テーブルをクエリすると、MySQLはIDの代わりに文字列を返すことを知っています。文字列またはIDで検索することもできます。したがって、 'WHERE type = 0'と' WHERE type = 'category'は同じものを返します – CptMisery
ありがとうございます。それは素晴らしい解決策です! – Niloofar