web-dev-qa-db-ja.com

単一のWebアプリケーションで複数のSQLite3データベースが実行可能ですか?

この質問はstackoverflowには不適切と投票されたため、ここで質問します。ユーザーが送信する内容を中心にコンテンツが集中するCMSの設計を検討しています。ユーザーコンテンツ用のポリグロット、php、sqlite3、およびCMS設定用のxml上に構築されています。

私の質問は、1つのWebアプリケーション内の各ユーザーにslite3データベースを使用すると実行可能でしょうか?または、サーバーリソース上では難しすぎますか?いくつかの点で、特に大規模なサイトでは簡単に思えますが、コメントについてはどうでしょうか?

1
Xarcell

私の質問は、1つのWebアプリケーション内の各ユーザーにslite3データベースを使用すると実行可能でしょうか?

「技術的に」可能ですが、非常に非正統的です。この方法でsqliteを使用することは、それが設計された想定「ソリューションスペース」の範囲外になります。

だから、実行可能?番号。

または、サーバーリソース上では難しすぎますか?

これは予想外のユースケースであり、ベンチマークされたことはないでしょう。

いくつかの点で、特に大規模なサイトでは簡単に思えますが、コメントについてはどうでしょうか?

標準的な方法は、すべてのユーザーデータを1つのデータベースに保持するようにデータベースを設計することです。 1人のユーザーに固有のデータを参照する各テーブルには、そのユーザーを一意に識別する値を持つ列があります。

これにより、すべてのユーザーデータを1つのデータベースに混在させて安全に保存できます。

以下は、原理を説明するのに役立つ非常に基本的な例です。

All the following tables are in 1 single database

TABLE = "users"
FIELDS
 "user ID"
 "user login nickname"
 "user password_hash"
 "user email"
 "user name"


TABLE = "forum threads"
FIELDS
 "thread id"
 "thread title"

TABLE = "forum thread comments"
FIELDS
 "thread id"
 "comment id"
 "comment user id"
 "comment datetime"
 "commnet text"
2
John McNamara