ルックアップテーブルを設計する際に、より良い方法や原則があるかどうか疑問に思います。
私は、さまざまな状況に対応できる抽象的なルックアップテーブルを設計するつもりです。
たとえば、ルックアップテーブルをテーブルと呼びmasters and slaves
ます。
CREATE TABLE IF NOT EXISTS `masters_slaves` (
`mns_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`master_id` varchar(255) DEFAULT NULL COMMENT 'user id or page id',
`slave_id` varchar(255) DEFAULT NULL COMMENT 'member id or user id or page id',
`cat_id` varchar(255) DEFAULT NULL COMMENT 'category id',
`mns_created` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
`mns_updated` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`mns_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
したがって、このルックアップテーブルは、次のようなこれらのタイプの関係を提供できます。
Admins and Members
Admins and Pages
Admins and Posts
Post Categories and Posts
Page Parents and Pages
etc
表のcat_id
inmasters and slaves
は、これらのカテゴリを説明および区別します。たとえば、管理者やメンバーcat_id
1
などです。
そして、私は挿入します:
- 管理者IDを列に
master_id
、メンバーIDをslave_id
列に - 親ページIDを列に
master_id
、子ページIDをslave_id
列に - カテゴリIDをの列に投稿し
master_id
、ページIDをslave_id
列に投稿します - 等
しかし、私はそれのために行くべきかどうかについて確信しています:
- これは優れたルックアップテーブルのプラクティスですか、それとも多くの場合、さまざまな関係に対して複数のルックアップテーブルを作成する必要がありますか?
- このようなルックアップテーブルを実行できた場合、これはすべてに対して1つのルックアップテーブルにすぎませんが、将来どのような結果になりますか?この唯一のルックアップテーブルは、サイトのコンテンツが大きくなると過剰に入力されますか?
- もう1つ頭に浮かぶのは、タグシステムもルックアップテーブルソリューションではないかということです。
ありがとう。