私はいくつかのWebアプリケーション用にdbを計画しています。そして、私はいくつかのテーブルの共通テーブルについての混乱を見つける。例えば、
テーブルusers
、travels
およびgroups
からの各行はいくつかの画像を必要とする。だから、私はこれらのテーブルのそれぞれに外部キーを持つテーブルimages
を作成し、いくつかの新しいテーブルが必要な場合は、image
からこのテーブルに新しいリンクを作成します。
users_images
、groups_images
などのユニークなテーブルを各テーブルごとに作成する方が良いでしょうか?
申し訳ありませんが、私の質問が広すぎるように見える場合、私は井戸の男だけで、うまくdbスキームを計画するベストプラクティスを探しています。いくつかのテーブルに共通の関連テーブルを作成するのは良い方法ですか?
2
A
答えて
2
あなたは
既存のテーブル
- ユーザーのようなもの(ID、名前、...)
- 旅行(ID、説明、...)
- グループ(IDを使用する必要があります、名前、...)
今、あなたは、テーブルのIMAGE(ID、Image_Blob、...)
を作成- UserImageのような210の
とマッピングテーブル(ユーザーID、IMAGEID)
- TravelImage(TravelID、IMAGEID)
- GroupImage(グループID、IMAGEID)外部キー制約を持つ
すべての列とインデックス。
利点:
- あなたが特定のメタ情報を追加することができますいくつかのエンティティ
- に一つの画像をマッピングすることができます(このとき、コメントがリンクされ、...)たぶん
ソーステーブルの名前を置く追加のLinkingTo
列を持つ共通のマッピングテーブルを使用するようにアドバイスします。しかし、そうすることで、外部キーの制約を抱かせなければならないでしょう。
それはほとんどの一般的なルールです:良いデータベースが
:-) 多くのテーブルを持っています関連する問題
- 1. 関連テーブルから別の関連テーブルにデータをコピーする最も良い方法は何ですか?
- 2. 私のmysqlテーブルを作成するより良い方法は何ですか?
- 3. Sqliteいくつかのテーブルのデータを保持するテーブルを作る正しい方法は何ですか?
- 4. 共通のタスククロージャを作成する最良の方法は何ですか
- 5. xml関連テーブルから - いつネストするのですか?
- 6. 関連テーブルに一度に挿入する方が良いですか?
- 7. 3つのテーブルにはたくさんの関係を作成する方法
- 8. 共通テーブル式で2つのデータフィールドをグループ化する方法
- 9. 共用体で2つのテーブルをマージする新しいテーブルを作成
- 10. SQLiteのテーブルに作成できるカラムの数はいくつですか?
- 11. バックボーンにお互いに関連する縦と横のデータを持つテーブルを作成する方法
- 12. SQL Serverの詳細テーブルに外部キーを関連付ける最も良い方法は何ですか?
- 13. 次のコードで作成するVテーブルの数はいくつですか?
- 14. 3つのテーブルに基づくクエリを作成する方法
- 15. Sequelize.JS Postgresql - 関連テーブルからSUMテーブルを比較する方法
- 16. 関連テーブルのページングを行い、大まかなクエリにマップする方法は?
- 17. テーブルといくつかの初期パーティションを動的に作成する方法はありますか?
- 18. テーブルの<tr>でカウントを行い、vb.netでいくつかの背景色を作成する方法
- 19. いくつかのアプリケーション間で画像を共有する最良の方法
- 20. Grailsドメイン作成関連テーブル
- 21. テーブルにレコードを追加する方法、それは別のテーブルに関連していますか?
- 22. クエリで2つのテーブルを関連付ける方法は?
- 23. 共通のベクトルサイズタイプを使用する最も良い方法は何ですか?
- 24. 2つのテーブルから私のコンボショーデータを作成する方法
- 25. Android sqliteで作成できるテーブルとデータベースの数はいくつですか?
- 26. 関連のない2つのテーブルsqliteからデータを取得するには?
- 27. SQL - 1つのテーブルで多くのトランザクションを処理するより良い方法はありますか?
- 28. いくつかのドッカー作成で同じドッカーサービスを使用する最も良い方法は何ですか?
- 29. テーブルの中でランダムパターンを生成する最良の方法は何ですか
- 30. 1つのテーブルで2つのテーブルの列を連結するにはどうすればよいですか?