私のアプリケーションでは、ユーザーが壁紙をアップロードするたびに、その壁紙を 3 つの異なるサイズにトリミングし、それらすべてのパス (トリミングされた画像の 3 つのパスと元のアップロード壁紙の 1 つ) をデータベースに保存する必要があります。
元の壁紙 (ユーザーがアップロードしたもの) の tinyurl も保存する必要があります。
上記の問題を解決しながら、次のテーブル構造を考え出しました。
CREATE TABLE `wallpapermaster` (
`wallpaperid` int(10) unsigned NOT NULL AUTO_INCREMENT,
`userid` bigint(20) NOT NULL,
`wallpaperloc` varchar(100) NOT NULL,
`wallpapertitle` varchar(50) NOT NULL,
`wallpaperstatus` tinyint(4) DEFAULT '0' COMMENT '0-Waiting,1-approved,2-disapproved',
`tinyurl` varchar(40) NOT NULL
) ENGINE=MyISAM
wallpaperloc は、元の壁紙の場所とトリミングされたすべてのインスタンスの場所で構成されるカンマ区切りのフィールドです。
リレーショナル データベースの世界では、コンマ区切りのフィールドを使用するのは悪い設計と見なされていることを知っています。