質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1601閲覧

SaaSを提供するとして、企業や組織ごとにサービスの切り分け方について(BtoBtoC)具体的方法をお教えください。

DANGANMARU

総合スコア14

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2016/06/23 05:09

###前提・実現したいこと
PHPやJavaやその他色々でサービスを作っています。

サービス提供のログインなどの切り分け方で
皆様はどのような考えと具体的設計・実装をされているのか、
この初心者に対してお教え頂ければ幸いです。

###例

A:
普通のコンシューマー向けサービスならBtoCとして、超簡単に考えると、
個人のIDだけでユーザー画面を割り振るだけで大丈夫だと思います。

B:
あるサービスを沢山の顧客へ提供する(セールスフォースやConfluenceなど…)となると、
BtoBtoC(Cは企業の中の個人としての表現)になってくると思います。

Bの場合で、サービスの設計と具体的実装などの調べたリ勉強したしたりしたのですが、
お恥ずかしいですが、具体的にはわからずじまいです。

「A」ですと超簡単に考えればテーブル1つ(ユーザーテーブル)ぐらいですみますよね?
「B」ですとテーブル2つ?(企業テーブル・ユーザーテーブル)で考える?もしくは、サブドメインで切ってしまう?などなど…

###環境
AWSなどの仮想サーバーorさくらVPSなどの仮想環境下で提供すると仮定します。

できるだけ具体的にお教え頂ければ幸いです。

既出かもしれませんがどうぞお手柔らかによろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

サービスの要件によりケースバイケースになる内容なので、
質問の範囲としては少し広すぎるように思います。

推奨していない質問

問題・課題が含まれていない質問

teratailは困っている人の質問を解決するサービスです。そのため、漠然とした興味から票を募るような質問や、意見の主張をすることを目的とした投稿は推奨していません。
何か困っている理由があり、最適解を見つける為の知見を得たい場合は、その理由や何が知りたいのかを明確に記述してください。

の後半部分をご確認下さい。

様々なケースを具体的に知りたいという事であれば
WEB+DB PRESSや等のバックナンバーからケースを洗い出してみると言うようなアプローチが効率がいいと思います。
総集編がとても安いです。
Software Design総集編も素敵です。

これだけだとあれなので、
質問にある例のケースですと、

「A」ですと超簡単に考えればテーブル1つ(ユーザーテーブル)ぐらいですみますよね?

はい。シンプルなケースだとそうなります。

「B」ですとテーブル2つ?(企業テーブル・ユーザーテーブル)で考える?
もしくは、サブドメインで切ってしまう?

どちらでも実装可能で、ケースバイケースになります。
どちらのケースも実装したことがありますが、

  • 前者はコストパフォーマンスや利便性、保守性に優れる。
  • 企業が増えてもレコードを増やすだけなので即時対応できる
  • バグや脆弱性によって他企業のデータが見れてしまったりする可能性が常にある
  • 一部企業の利用状況が全体のパフォーマンスに影響を与える
  • 企業単位のアップデートやカスタマイズは原則として出来なくなる(全体の機能としてプラグインや機能On/offなどをつけるというのは可能)

後者(企業単位でDBを分けてしまう)はその逆で、

  • コストパフォーマンスや納期の問題が出てくるが、原理的にセキュリティが一段高くなったりする
  • メンテナンスを企業毎の事情に合わせることが出来る

という感じになりますね。

投稿2016/06/23 06:48

tanat

総合スコア18713

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

DANGANMARU

2016/06/24 00:45

tanat様 ご指摘ありがとうございます。 次回から注意いたします。 また、両者(A/B)に対してご回答も大変感謝します。 正直ユーザー単位ログインに対して、結局テーブルやデータベースなどの切り分け方って今後導入するにあたってレガシーすぎるんじゃないかと不安がありました。ある「仕組み」を使えば意外とあっさりこの部分が晴れるような気がしてしまい、こんな漠然とした質問に至りました。 ひとまずRubyであれ、JavaやPHPであれ、基幹システムに大幅な違いが無いことを考慮すると、ひとまず今の考えで行こうかと思います。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問