写真のウェブサイトの推奨データベーススキーマ
質問
私は私の写真を整理し、いくつかのAjaxフロントエンドを作成しようとしています。私はたくさんの写真と私はPicasaウェブまたは代替に保存するために支払う必要はいけないので、それは、ディスクスペースの多くを持っているために支払われている既存のホスティングサイトを持っています。
私はこれらの写真を閲覧するためにasp.netサイトを作成していますが、私はその後、格納するための最良のスキーマを決定しようとしています。 Aは、いくつかの基本的な質問を持っています:
写真
アルバム
タグ(多分)
いくつかの質問: 1.私は、各アルバムまたは1枚の写真内のすべての写真のために別々のテーブルを持っています。この別離への利点がある場合、別々のテーブルには、私は決定しようと同一であります 2.は、MySQLに対してSQLサーバを使用して、任意の主な利点は、このスキーマのために(これらは、このケースでは、私の選択である)があります。私は私が空想には何をやっていると思ういけない。
解決
あなたは1を持って一つのテーブル、にすべての写真を置く必要があります
Photos | id, title, url, description, album
Albums | id, title, description
アルバムは外部キーがAlbums.id
することである。ここで、
タグについて、あなたはおそらく、1枚の写真のために多くのタグを持つようにしたいです
Tags | id, name
Photo_Tag | id, id_tag, id_photo
id_tag
とid_photo
各Tag.id
をPhoto.id
への外部キーがある場合
あなただけの個人的な使用のためのプロジェクトを作っている場合は、私は、MySQLがうまくやるだろうと思います。
他のヒント
アルバム(ID、名前、説明)、あなたはごとに異なるテーブルに別れるならば、あなたは何のメリットと複雑さの多くを得るんだろう写真(ID、名前、説明、PhotoData、parentAlbum)ごとに1つのテーブルのための一つのテーブルアルバム。 Nの関係アルバム:あなたは写真を複数のアルバムに属しているしたい場合は、1のリンクテーブルを使用して写真ではなく、写真の一部として、アルバムIDを持っています。あなたがのために行く場合はタグを使用すると、写真やアルバム(あるいはその両方)をタグ付けするかどうかを決定多分タグテーブルと1のために行く:AlbumTagsとPhotoTagsのためのNマッピングテーブル
DBの選択に関しては、このレベルでのみ、微分は(あなたが同じ価格で入手可能なの両方を持っている場合)ので、あなたが一番知っていることで行く費用されます。