問題タブ [normalization]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 別のテーブルを作成する必要がありますか、それとも配列を使用するだけですか?(正規化するかしないか)
現在の状況では、トピックは3つの主要なカテゴリでソートされています。3つ以上のカテゴリを追加する可能性がありますが、上位のアップは、トピックに1つ以上のカテゴリを追加する機能を実装したいと考えています。
私の元のデータベース設計では、トピック情報テーブルの外部キーとしてcategoryIDがあります。これは最初からおそらく悪い考えでしたが、カテゴリが3つしかないように設定されていて、この方法でクエリを実行できるようになると思いました。
したがって、私が見ることができることから、2つのオプションがあります。1)phpの最後で解析するコンマ区切りの文字列としてcategoryIDを入力します。2)DBを再構築し、categoryIDをcategoryIDとtopicIDの独自のテーブルに引き出します。
みんなどう思ったのかしら。私の最初の本能は、データベースを再構築することでした。しかし、私が考えるときの最初のオプションは、実装するのが最も簡単で、データベースを変更することによって既存のものを壊す可能性が最も低いです。ただし、これにより非正規化が発生し、データに一貫性がなくなる可能性があります。
パフォーマンスと引き換えに一貫性のないデータが発生するリスクを受け入れる限り、非正規化は問題ないことを読みました。あなたの意見では、私はこのリスクのパフォーマンスで多くを得るでしょうか?この状況で私が何をすべきかについての意見をいただければ幸いです。
助けてくれてありがとう、
リーバイス
sql - このテーブルを 2 つに分割する必要がありますか?
データベースの正規化に頭を悩ませようとしています。実用的なデータベースを作成しようとするのはこれが初めてなので、私の無知を許してください。クラスプロジェクト用の自動卒業チェックシステムを作成しようとしています。次の表は、設定されたカタログ年数のメジャーのすべてのオプションを追跡します。表は以下の通り
Must_have
一部のオプションでは、リストされた合計 (したがって属性)から指定された数のクラスをユーザーが選択できます。完成した行は次のようになります。
Title
メジャーに付属するオプションの名前です。bis
(ビジネス情報システム) にクラスの選択肢がある場合、1 つの行に 1Must_have
つの行だけの番号があります。
私の質問は、このテーブルを 2 つの異なるテーブルに分割する必要があるかどうかです。私が現在持っている方法は、やや間違っているように思えます。どんな助けでも大歓迎です。
sql - SQL データベースがさらに正規化を必要とする時期をどのように判断しますか?
データを取得しようとしていて、明らかに簡単な方法がない場合ですか?
何かがそれ自体のテーブルであるべきだとわかったときは?
法律は何ですか?
sql - ER図(図面)
大規模な大学での現在の学期の登録を表すリレーショナルデータベースの場合、与えられたすべてのアサーションを考慮したスキーマのER図は何ですか。
•100人のインストラクター、200人のコース、800人の学生。
•インストラクターは、特定の期間に1つ以上のコースを教えることができます(平均は2.0コースです)。
•インストラクターは、少なくとも1人の学生(平均= 2.5人の学生)の調査を指示する必要があります。
•コースには、前提条件がない、1つ、または2つある場合があります(平均= 1.5の前提条件)。
•現在学生が在籍していない場合でも、コースが存在する場合があります。
•各コースは、1人のインストラクターによって指導されます。
•コースの平均登録者数は30人です。
•学生は、学期ごとに少なくとも1つのコースを選択する必要があります(平均= 4.0コースの選択)。
私は何度か答えにたどり着こうとしましたが、できません。すべての助けは私にとって貴重です。ソリューションを視覚化するのに役立つMSVisioの図(この質問に時間を割くことができる場合)をいただければ幸いです。
注:私はRTFM応答を探していません。
sql-server - インライン varchar(max) 列を使用するか、別のテーブルに格納する必要がありますか?
特定のシステム操作の詳細を記録するために、MS SQL Server 2005 でテーブルを作成したいと考えています。以下のテーブル デザインからわかるように、Details
is 以外のすべての列は null 不可です。
Details
列に常にデータが含まれているとは限らないためです。この列を別のテーブルに格納し、代わりにリンクを提供する方が効率的ですか?
小さいデータ型の場合はあまり考慮しませんが、varchar(max)
これを行うとテーブルのサイズを小さく保つのに役立ちますか? それとも、データベースを賢くしようとしているだけで、何も達成していませんか?
sql - 汎用データベース ロギング システム: 別の database.table.column への参照を格納する
私の質問はLog
、テーブルに保存されている参照を別のデータベースのデータにリンクするにはどうすればよいですか?
他のすべてのシステムに対して特定の重要なタスクを実行するシステム(Fusion と呼ばれる)を構築しています。これらの 1 つがログ記録です。
アイデアは、他のシステムが Fusion を使用して特定の操作をログに記録できるようにすることです。
したがって、上記の単純化されたテーブル設計では、ReferenceID
列に別のデータベース列からの外部キーが格納されます。つまり、ニュース データベースの StoryID または人物データベースのPersonIDです。
次に、列のdatabase.table.columnの場所をReferenceLocation
格納します。ReferenceID
Log
テーブルがクエリされたときに各行の参照データを返すことができるように、SQLクエリを(動的SQLまたは別の方法を使用して)作成できるという考えです。
これはそれを行う方法ですか?より良い方法はありますか?一般的に、この試みの背後にある理由を再考する必要がありますか?
sql - 3NF データベースの正規化
期限切れの DVD レンタルのレポート テーブルがあります。店舗には同じ DVD の複数のコピーがあります (それらはすべて識別できるように番号が付けられています)。このデータを正規化して 3NF 要件を満たすにはどうすればよいですか?
正規化 http://img193.imageshack.us/img193/7804/normalization.jpg
sql - 「DBに別の列を追加するだけ」が悪い考えである理由を非プログラマーに説明する
カスタマイズをクライアントに販売しようとしている営業担当者と Bean カウンターがいますが、これは問題ありません。しかし、私が多額の見積もりを返送するような複雑な変更依頼が来ると、彼らは混乱します。多くの場合、彼らは「なぜ別の列を追加できないのですか?」と私に言い返してきます。別の言い方をすると、クライアントごとに十数個のカスタム列を意味します。
これまでのところ、「データベースを適切に正規化しようとしている」ということしか言えませんが、これは彼らにとって何の意味もありません。私は、各クライアントが独自のカスタム フィールドのセットを定義できるテーブルのシステムを作成できると伝えましたが、もちろん、「数列を追加するだけ」よりも時間と費用がかかります。そしてもちろん、彼らもケーキを食べたいと思っています。
では、どうすれば彼らに理解してもらえるでしょうか?
xml - これは適切な XML ですか?
私は、Web サイトのコンテンツに次の XML 構造を使用しているクライアントのために働いています。
私は XML にはまったく慣れていませんが、これはうまくいきません。タグを閉じるさまざまな方法 ( で自動クローズする/>
か、 で明示的にクローズする</section>
) は別として、XML はもっと似ているはずだと思っていたでしょう。
どう思いますか?
どちらも問題ない場合、「ベストプラクティス」はありますか?
sql - 主キーが必要ない場合、主キーを使用しなくてもかまいませんか?
主キーが必要ない場合、データベースに追加するべきではありませんか?