• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データベースの設計方法について)

データベースの設計方法について

このQ&Aのポイント
  • 初心者が学ぶデータベースの設計方法とは?インスタンス内に複数のデータベースを作成し、機能ごとに分ける設計もあります。
  • データベースの設計方法は一つのデータベースに全てのテーブルを用意する設計と、機能ごとにデータベースを分ける設計の2つがあります。
  • データベースの設計方法はプログラムの設計にも似ています。一つのデータベースに全てのテーブルを用意するか、機能ごとにデータベースを分けるかは目的や要件によります。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5314/13871)
回答No.2

個々のデータへのアクセス権をどう管理するかで設計が変わります。 DBを利用するアプリケーションが1つしか無いのであれば1つのDBにテーブルを全て突っ込んでも問題ないでしょう。 しかし複数のアプリケーションが存在する場合、あるアプリケーションは「顧客情報」については閲覧権限だけを与えると言った感じで権限を分けたいケースがありますので、DBを分けておきアプリケーション毎にユーザーを作って、各ユーザーがあるDBについては「閲覧のみ」別のDBは「編集可能」や「アクセス不可」とアクセス権を設定します。 データの種別毎にアクセス権をするとこで、権限の無い人が情報を見てしまったり、改変してしまう事を防げます。

MI9999
質問者

お礼

早速の回答有り難うございます。 なるほど!アクセス権を考慮する必要があるのですね。 初めての設計なので、自分一人の事しか考えていなかったのですが、実際に運用する際はいろいろな人が使うことが前提なので、アクセス権の振り分けは必要ですね。 非常に参考になりました。 有り難うございます。

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#225478
noname#225478
回答No.4

 No.1です。  補足のコメント、ありがとうございます(‘v‘*)  データベースは、1個だけにするのが良いと思います(‘v‘*)  テーブルごとに分けるのは、良い方法だとは思います(>_<)  一個だけの方が、一個に専念できると思います(>_<)

MI9999
質問者

お礼

回答有り難うございます。 >一個に専念 いい響きですね。 それもありですね。あっちこっち散らかして、片付かないようでは本末転倒ですから。

すると、全ての回答が全文表示されます。
回答No.3

>と1つのデータベースに全てのテーブルを用意する設計では無く 1つのデータベースに全てのテーブルを用意する設計を「A」とします。 >機能ごとにデータベースを分けて、インスタンス単位で1機能(もしくは複数機能の実装)の設計 機能ごとにデータベースを分けて、インスタンス単位で1機能の設計を「B」とします。 >この方法が正しいのか誤りなのか、 「AとB、どの方法が正しいか」は「状況による」ので「どっちが正しい」とは断言出来ません。 Aを選ぶべき状況では、Aが正しく、Bは間違い。 Bを選ぶべき状況では、Bが正しく、Aは間違い。 AもBも選べる状況では、AとBのどっちも正しい。 AもBも選べない状況では、AとBのどっちも間違いで、AでもBでもないCが正しい。 >そもそも理解に誤りがあるのか全く見当が付きません。 理解は正しいです。ただ「今、自分が作ろうとしているデータベースが、どういう状況なのかが、理解できてない」だけです。 ただ単に「Aを選ぶべき状況なのか、Bを選ぶべき状況なのか、判らない」だけです。 どっちを選ぶべき状況なのか把握できていないので「AとBのどちらが正しいのか判らない」のです。 で「個人の勉強の為にデータベースを構築している」のであれば「勉強の為に、AとBの両方ともやってみる」が「正しい選択」です。 AとBの両方をやってみて「Aでだけ出来ること、Aでだけ出来ないこと、Bでだけ出来ること、Bでだけ出来ないこと」を習得すれば「状況を正しく判断してどっちを選ぶべきなのか決定する事ができるようになる」でしょう。 それが「勉強」と言うモノです。 今までのような「教科書に書いてある事だけを勉強する」ではダメです。「教科書に書いてあること、書いてないこと、出来る事を全部やってみて、それぞれの特徴を掴む」が「設計の勉強」になります。 >一般的にはどのようにするものなのでしょうか? 「その現場の状況に合わせて設計する」のが一般的です。 で「打ち合わせのたびに、クライアントの言う事(つまり、現場の状況)がコロコロ変わる」ので、SEやプログラマが「もうむりぽ」とか「納期が」とか「5徹しても間にあわねえ」とか叫ぶ事になるのです。

MI9999
質問者

お礼

早速の回答有り難うございます。 なるほど、基本的にはどちらの手法でも問題ないということですね。 実のところchie65535さんのおっしゃるとおり状況すら解っておらず、複数のデータベースを作成して1つの機能を作成するのはイケナイ事(イリーガルな事)なのかな?っと思って質問した次第です。 どちらでも問題ないのであれば、複数データベース方式で設計したいと思います。 アドバイス大変参考になりました。 有り難うございます。

すると、全ての回答が全文表示されます。
noname#225478
noname#225478
回答No.1

 ごめんなさい。  難しくて、良く解りません(>_<)  もっと、簡潔に説明して頂けないでしょうか???  いかがでしょうか???

MI9999
質問者

お礼

早速の回答有り難うございます。 補足コメントに質問内容を簡潔に記しておきます。

MI9999
質問者

補足

すみません。質問文が解りにくかったですね。 販売・在庫管理の機能を実現するにあたり、1つのデータベースで作成した方が良いのか、複数のデータベースにデータを分散して作成した方が良いのか? という質問の趣旨です。

すると、全ての回答が全文表示されます。

関連するQ&A