タグ付けされた質問 「database」

このタグは、一般的なデータベースの質問用です。SQLに固有の質問の場合は、代わりにそのタグを使用してください。

13
データをディスクに保存するだけでなく、データベースを使用する理由は何ですか?
データベースの代わりに、データをJSONにシリアル化し、必要に応じて保存してディスクにロードします。すべてのデータ管理はプログラム自体で行われ、SQLクエリを使用するよりも速くて簡単です。そのため、なぜデータベースが必要なのか理解できませんでした。 データをディスクに保存するだけでなく、データベースを使用する必要があるのはなぜですか?
193 database  sql  mysql  nosql 

17
常に自動インクリメント整数のプライマリキーを持つことは良い習慣ですか?
私のデータベースでは、id特定の行を一意に検索できるように、作成するすべてのテーブルの名前に整数の主キーを自動的にインクリメントするという習慣になりがちです。 これは悪い考えと考えられますか?この方法で行うことには欠点がありますか?場合によっては、一意の識別子id, profile_id, subscriptionsがどこにあるか、テーブルの外部へのリンクなどの複数のインデックスがあります。idprofile_ididProfile または、そのようなフィールドを追加したくないシナリオはありますか?

12
大きなファイル(10 MB)をデータベースに保存するのは悪い習慣ですか?
現在、ユーザーが1 MB〜10 MBのサイズのファイルを保存および共有できるWebアプリケーションを作成しています。 データベースにファイルを保存すると、データベースアクセスが大幅に遅くなるように思えます。 これは有効な懸念事項ですか?ファイルシステムにファイルを保存し、データベースにファイル名とパスを保存する方が良いでしょうか?データベースを操作する際のファイルの保存に関連するベストプラクティスはありますか? 私はこのプロジェクトでPHPとMySQLを使用していますが、ほとんどの環境(Ruby on Rails、PHP、.NET)およびデータベース(MySQL、PostgreSQL)で同じ問題があります。

9
誰かがリレーショナルDBMSでMongoDB(または同様の)を使用するのはいつですか?
私は、NoSQL全体などについて少し混乱しています。OracleやMySQLのようなものよりもMongoDBのようなものを使用することを選択するのはいつですか?使い方がそれらの間で異なる限り、私は「違い」を本当に理解していません。 私の理解では、NoSQLタイプのデータベースはRDBMSに代わるものではありませんが、正確には何を意味するのでしょうか?
134 database  nosql  rdms 

17
「ファジー日付」をどのようにデータベースに保存しますか?
これは私が何度か遭遇した問題です。データベーステーブルに保存するレコードがあるとします。このテーブルには、「date_created」というDateTime列があります。この特定のレコードはかなり前に作成されたものであり、正確な日付は確かではありませんが、年と月はわかっています。あなたが年だけ知っている他の記録。日、月、年を知っているその他の記録。 「1978年5月」は有効な日付ではないため、DateTimeフィールドは使用できません。複数の列に分割すると、クエリを実行できなくなります。他の誰かがこれに遭遇しましたか?もしそうなら、どのようにそれを処理しましたか? 私が構築しているシステムを明確にするために、それはアーカイブを追跡するシステムです。かなり前に作成されたコンテンツもありますが、知っているのは「1978年5月」だけです。1978年5月1日として保存することもできますが、この日付が月に対してのみ正確であることを示す何らかの方法があります。その方法で、数年後、そのアーカイブを取得するときに、日付が一致しない場合でも混乱しません。 私の目的では、「1978年5月の不明な日」と「1978年5月1日」を区別することが重要です。また、ほとんどのデータベースシステムでは無効な日付値として拒否されるため、「1978年5月0日」のように不明な値を0として保存したくないでしょう。


9
データベースにどの程度のビジネスロジックを実装する必要がありますか?
私は、ほとんどのビジネスロジックがデータベースに実装されているプロジェクト(主にストアドプロシージャを使用)で働いてきました。一方、仲間のプログラマーからは、これは悪い習慣だと聞いたことがあります(「データベースはデータを保存するためにあります。アプリケーションは残りを行うためにあります」)。 これらのアプローチのどれが一般的に優れていますか? 私が考えることができるDBにビジネスロジックを実装することの長所は次のとおりです。 ビジネスロジックの集中化。 アプリケーションの種類、プログラミング言語、OSなどの独立性。 データベースは、テクノロジーの移行や大きなリファクタリング(AFAIK)を受けにくい傾向があります。 アプリケーションテクノロジの移行に関する手直しはありません(例:.NETからJava、PerlからPythonなど)。 短所: SQLは、ほとんどのアプリケーション指向言語が提供するライブラリと言語構成の欠如により、ビジネスロジックプログラミングの生産性が低く、より複雑です。 ライブラリ経由でのコードの再利用がより困難です(可能な場合)。 生産性の低いIDE。 注:私が話しているデータベースは、SQL Server、Oracle、MySqlなどのリレーショナルで人気のあるデータベースです。 ありがとう!

3
データベース接続の作成-クエリは1回ですか、それともクエリごとですか?
現時点では、Webページが最初にロードされるときにデータベース接続を作成します。次に、ページを処理し、その接続に対してクエリを実行します。これが最善の方法ですか、クエリを実行するたびにデータベース接続を作成する必要がありますか? ps 1つの接続を作成して使用する方が理にかなっていますが、これが他の問題を引き起こす可能性があるかどうかはわかりません。 MSSQLでC#(ASP.NET)を使用しています。
101 c#  database  sql-server 

10
「テーブルから選択*」が悪い習慣と見なされる理由
昨日、私は「趣味」のプログラマーと話し合っていました(私自身はプロのプログラマーです)。私たちは彼の仕事のいくつかに出会い、彼は彼のデータベースのすべての列を(実動サーバー/コード上でも)常に照会すると言いました。 私は彼にそうしないように説得しようとしたが、まだそれほど成功していなかった。私の意見では、プログラマーは、「可愛さ」、効率、およびトラフィックのために実際に必要なものだけを照会する必要があります。私の見方に誤りがありますか?
96 database  sql  mysql  bad-code 

9
リレーショナルデータベースでリストを使用しても大丈夫ですか?
私はプロジェクトのコンセプトに合わせてデータベースを設計しようとしており、熱く議論されている問題のように思われました。私はいくつかの記事を読んで、フィールドにIDなどのリストを保存することは決して(またはほとんど決して)大丈夫ではないことを示すいくつかのStack Overflowの回答を読んでいます-すべてのデータはリレーショナルでなければなりません しかし、私が直面している問題は、タスクアサイナーを作成しようとしていることです。ユーザーはタスクを作成し、複数のユーザーに割り当てて、データベースに保存します。 もちろん、これらのタスクを「Person」に個別に保存する場合、1人に0〜100個のタスクを割り当てることができるため、ダミーの「TaskID」列を数十個用意し、それらをマイクロ管理する必要があります。 繰り返しますが、タスクを「タスク」テーブルに保存する場合、ダミーの「PersonID」列を数十個用意し、それらをマイクロ管理する必要があります。これは以前と同じ問題です。 このような問題の場合、何らかの形でIDのリストを保存しても大丈夫ですか、それとも原則を破らずに達成できる別の方法を考えていないだけですか?

3
MariaDBとMySQLの違いは何ですか?
MariaDBとMySQLの違いは何ですか?私は両方にあまり詳しくありません。私は主にフロントエンド開発者です。 それらは構文的に似ていますか?これら2つのクエリ言語はどこが違うのですか? ウィキペディアでは、ライセンスの違いについてのみ言及しています。 MariaDBは、MySQLデータベースのコミュニティ開発ブランチであり、その推進力は、Oracleが現在所有しているMySQLライセンスステータスの不確実性とは対照的に、GPLの下での無料ステータスのコミュニティ維持です。

2
SQLiteデータベースで同時書き込みが許可されないのはなぜですか?
SQLiteでJavaを使用してデータベースプログラミングを行っています。 データベースへの一度に1つの接続のみが書き込み機能を持ち、多くの接続が一度に読み取り機能を持つことがわかりました。 SQLiteのアーキテクチャがなぜこのように設計されたのですか?書き込まれている2つのものがデータベース内の同じ場所に書き込まれていない限り、なぜ2つの書き込みが一度にできないのですか?

12
SQL:空の文字列とNULL値
私はこの主題が少し物議を醸すことを知っています、そして、インターネットの周りに浮かんでいる多くの様々な記事/意見があります。残念ながら、それらのほとんどは、その人がNULLと空の文字列の違いを知らないことを前提としています。そのため、結合/集計を使用した驚くべき結果についてのストーリーを伝え、一般にもう少し高度なSQLレッスンを行います。これを行うことで、彼らは絶対に全体のポイントを見逃し、したがって私にとって役に立たない。したがって、この質問とすべての回答が主題を少し前進させることを願っています。 個人情報(名前、生年月日など)を含むテーブルがあり、列の1つがvarchar型の電子メールアドレスであるとします。何らかの理由で、一部の人々は電子メールアドレスを提供したくないかもしれません。このようなデータ(電子メールなし)をテーブルに挿入する場合、2つの選択肢があります。セルをNULLに設定するか、空の文字列( '')に設定します。あるソリューションを別のソリューションよりも選択することの技術的な影響をすべて把握しており、どちらのシナリオでも正しいSQLクエリを作成できると仮定します。問題は、両方の値が技術レベルで異なっていても、論理レベルでまったく同じであることです。NULLと ''を見た後、私はただ一つの結論に達しました:その男のメールアドレスがわかりません。どんなに頑張っても NULLまたは空の文字列を使用して電子メールを送信できなかったため、明らかにほとんどのSMTPサーバーは私のロジックに同意します。そのため、値がわからない場合はNULLを使用する傾向があり、空の文字列は悪いことだと考えます。 同僚との激しい議論の後、2つの質問がありました。 不明な値に空の文字列を使用すると、データベースが事実について「嘘をつく」ことになりますか?もっと正確に言うと、何が価値で何がそうでないのかというSQLの考えを使用して、結論が出るかもしれません。しかし、その後、電子メールを送信しようとすると、矛盾した結論に達します。いいえ、電子メールアドレスがないため、@!#$データベースは嘘をついているはずです。 空の文字列 ''が重要な情報(値と値なし以外)の非常に優れたキャリアになる可能性のある論理的なシナリオはありますか?空の文字列を実際の値やNULLと一緒に使用するのが良い場合があると主張する多くの投稿を見てきましたが、これまでのところ(SQL / DB設計の観点から)論理的なシナリオは見ていません。 PS一部の人々は、個人的な好みの問題であると答えたいと思うでしょう。私は同意しません。私にとって、それは重要な結果を伴う設計上の決定です。だから、これについての意見がいくつかの論理的および/または技術的理由によって裏付けられている答えを見てみたい。
72 design  database  sql  strings  null 

7
Nullという姓は、多くのデータベースでどのように問題を引き起こしますか?
BBC に関する記事を読みました。彼らが言った例の1つは、姓が「Null」の人が一部のウェブサイトに詳細を入力するのに問題があるということでした。 彼らが直面しているエラーについての説明はありません。 しかし、私が知る限り、文字列 'Null'と実際のNull値は完全に異なります(データベースの観点から)。 これがデータベースで問題を引き起こすのはなぜですか?
71 database  null 

8
列挙型をDBに保存するのはなぜですか?
このように、DBに列挙型を保存する方法についてアドバイスを求める質問を数多く目にしました。しかし、なぜそうするのだろうか。したがってPerson、genderフィールドとGender列挙型を持つエンティティがあるとしましょう。次に、個人テーブルには列の性別があります。 正当性を強制する明白な理由に加えてgender、アプリケーションに既にあるものをマッピングするために余分なテーブルを作成する理由がわかりません。そして、私はその複製を持つことが本当に好きではありません。
69 database  enum 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.