所有者が自分の連絡先情報や情報について挿入/編集できる CMS ページを持っているサイトを作成しようとしています。
考えてみると、 、、および列info
を含む 1 行のみの という名前のテーブルを作成することに気付きました。tel
facebook
twitter
E-mail
単一の行をデータベースにのみ保存するのは良い考えですか、それともシステムファイルなどに保存するだけですか?
これについて本当に提案が必要です。
所有者が自分の連絡先情報や情報について挿入/編集できる CMS ページを持っているサイトを作成しようとしています。
考えてみると、 、、および列info
を含む 1 行のみの という名前のテーブルを作成することに気付きました。tel
facebook
twitter
E-mail
単一の行をデータベースにのみ保存するのは良い考えですか、それともシステムファイルなどに保存するだけですか?
これについて本当に提案が必要です。
いくつか提案があります。
まず、コード内に「データベース」を表すインターフェイスを作成することを強くお勧めします。これの利点は、いつでもバックエンドのストレージを変更できることです。このデータをファイル システムに保存し始めてから、データベースに変更することもできます。どちらの方法でも、コードは IRepository のようなものを指します。
次に、次のようなものがあります。
public class FileRepository : IRepository { } public class MySQLRepository : IRepository { }
これにより、データの永続化方法を柔軟に変更しながら、コードを同じに保つことができます。
次に、テーブルにわかりやすい名前を付けます。これはユーザー情報ですか?ユーザー設定?時間をかけてわかりやすい名前を選択すると、将来的に役立ちます。
第 3 に、これは実際よりも大きな問題になっている可能性がありますが、リレーショナル データベースとドキュメント データベースのどちらが必要かを検討してください。ドキュメント データベースを使用すると、「ユーザー情報」情報を 1 つのドキュメントに格納できます。これにより、結合などを行うことなく、コード内のオブジェクトを非常に簡単にシリアライズ/デシリアライズできます。例:
{
"id" : 123,
"tel" : "555-1212",
"facebook" : "bobby123",
"twitter" : "bobby_is_cool",
"email" : [ "bobby@yahoo.com", "bobby@gmail.com" ]
}
どちらにもメリットとデメリットがあります。リレーショナル データベース (SQL Server、MySQL、Oracle) を使用する場合は、時間が経ってもあまり変わらないと思われるものだけをフィールドにします。設定/ユーザー設定を保存したい場合は、フィールドを追加するよりも優れたオプションがあります。
それが理にかなっていることを願っています。