問題タブ [ddl]
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.
sql - Visio Enterprise Architect の代替として適切なものは何ですか?
私は Visio 2002/2003 Enterprise Architect を使用してデータベース スキーマを視覚的に設計し、DDL を前方生成してデータベースを作成しています。
Visio 2007 に切り替えたいと思っていましたが、データベース ダイアグラムはサポートされていますが、DDL を生成する機能がありません。残念。
Microsoft がこの機能を完全に放棄したように見えるので、私は本当にがっかりしています。Visual Studio (私が見つけた) では実行できません。データベース ダイアグラムをデータベースに挿入する場合は、SQL Server Management Studio を使用して実行できますが、スキーマの編集はすぐに有効になります。
これを行うための良いプログラムを見つけた人はいますか? 無料で SQL Server 用の DDL/SQL を生成できるものを見つけたいと思っています。
tsql - Sybase (TSQL) でテーブルを条件付きで作成するにはどうすればよいですか?
OK、Sybase (12.5.4) では、テーブルが既に存在する場合、次のようにしてテーブルを削除できます。
しかし、テーブルの作成で同じことをしようとすると、テーブルが既に存在するという警告が常に表示されます。これは、先に進んでテーブルを作成しようとし、条件ステートメントを無視したためです。次のステートメントを 2 回実行してみてください。言いたいことがわかります。
上記を実行すると、次のエラーが発生します。
SQL Server エラー (localhost) エラー: 2714 行: 7 メッセージ: データベースには、'a_table' という名前のオブジェクトが既に存在します。
それはどうしたの?
mysql - MySQL用語「制約」と「外部キー」の違い?
ここでMySQLのドキュメントを見て、FOREIGN KEYとCONSTRAINTの違いを整理しようとしています。FKは制約だと思っていましたが、ドキュメントはそれらが別のものであるかのように話しているようです。
FK を作成するための構文は (一部)...
したがって、「CONSTRAINT」句はオプションです。なぜ入れたり入れなかったりするのですか?省略した場合、MySQL は外部キーを作成しますが、制約は作成しませんか? それとも、「CONSTRAINT」は FK の名前にすぎないので、指定しないと匿名の FK になるのでしょうか。
明確化をいただければ幸いです。
ありがとう、
イーサン
code-generation - 最初にビジネスエンティティを作成し、次にデータベースを作成できる.NETフレームワーク
.NET Frameworkを使用すると、最初にビジネスエンティティを作成し、次にデータベースを作成できますか。つまり、後でデータベースに戻るためのDDD /PersistenceIgnoranceメソッドを使用できるようにします。作成したモデル/クラスがSQLDDLおよび移行スクリプトを生成できるようにするツール。
私の言い回しを自由に作り直して、より良い質問にしてください。
database - 1 対多の関係にある識別子
私は 2 つのテーブルを持っています。それらFoo
を と と呼びます。1 対多Bar
の関係で、Foo
は の親ですBar
。Foo の主キーは、シーケンスで自動的に生成される整数です。
次の制約が与えられた場合、主キーをどのように設定するかによってBar
完全に異なります。Foo
Bar
- Bar のレコードはプログラムによって生成されるため、ユーザー入力を識別子として信頼することはできません。
- 複数のプロセスが Bar レコードを生成しているため、
Select Max()
を生成するために を含むものはすべてID
競合状態を示します。
私は満足していない2つの可能な解決策を思いつきました:
- テーブルを、それらのレコードを一緒にマップする 3 番目のテーブルとの多対多の関係であるかのように扱い、レコード間のマッピングが正しく作成されるように、アプリケーション コードでレコードの挿入を処理します。データベースの設計が誤解を招き、アプリケーション コードのエラーによって無効なデータが発生する可能性があるため、これは好ましくありません。
- Bar に 2 つの列:
FooID
and を指定し、 for someを選択しFooBarID
て値を生成します が、前述のように、競合状態が発生します。FooBarID
max(FooBarID)+1
FooID
別のテーブル レイアウトのアイデアをいただければ幸いです。
database - テーブル間のひし形関係の識別子
4 つのテーブル (A、B、C、D) があり、A は B および C との 1 対多の関係の親です。C と D は、テーブル D との 1 対多の関係の親です。概念的には、これらの主キーはテーブルは次のようになります。
- A: 援助
- B: Aid、bnum (A への外部キー付き)
- C: Aid、cnum (A への外部キー付き)
- D: Aid、bnum、cnum (B および C への外部キー付き)
「num」列は、各レコードではなく、関係の各親 ID に基づいて自動インクリメントされます。以前のアプリケーションでこのアプローチを使用しましたが、B レコードと C レコードの作成は、'select max()' クエリを介して新しい 'num' 値を生成する順次プロセスによって行われたため、問題ではありませんでした。私はこのアプローチに本当に満足したことはありませんでしたが、仕事はやり遂げました。
私が現在取り組んでいる特定のケースでは、テーブル A と B のレコードはユーザーによって入力されるため、ID の自動生成は問題になりません。テーブル C と D の場合、これらのテーブルのレコードは複数の同時バッチ プロセスによって生成されているため、それらの識別子を何らかの方法で生成する必要があります。私がリストした前の方法は、競合状態に対しては機能しません。
これは Oracle データベース用であるため、自動インクリメント列ではなくシーケンスを使用することに注意してください。
上記の制約がある場合、A、B、C、および D を表すテーブルをどのように設計すれば、エンティティ間の関係が適切に適用され、アプリケーション コードで識別子を生成する必要がなくなりますか?
ddl - 参照整合性の維持
与えられたスキーマ:
およびビジネス ルール:
ソート計画は、同じ machine_type の任意のマシンに割り当てることができます。
SCHEDULE で、 machineとsort_planによって参照されるタプルが同じmachine_typeを持つように強制するにはどうすればよいですか?
スキーマは、必要に応じて変更できます。
import - Oracle9iからOracle10gExpressへのSQLスクリプトのインポートに関する問題
Oracle9iSQLスクリプトをローカルのOracle10gExpressデータベースにインポートしようとすると、現在問題が発生しています。DDLを9iデータベースから10gExpressデータベースにインポートしようとしています。「互換性がありません-エクスポートファイルはサポートされていません」というメッセージが表示され続けます。誰かがこれを機能させることができましたか?これを機能させるために私にできることを教えてください。
algorithm - 主キーはどうですか?
私のチームでの活発な議論の中で、ほとんどの人が主キーとして好むものを考えさせられました。次のグループがありました-
- 自動インクリメントが十分な主キーである Int/ BigInt 。
- 主キーを構成する列は少なくとも 3 つ必要です。
- Id、GUID、および人間が判読できる行識別子はすべて、異なる方法で処理する必要があります。
PK の最適なアプローチは何ですか? あなたの意見を正当化できれば素晴らしいことです。上記よりも良いアプローチはありますか?
編集: 適切にスケーリングされる行の人間が読める識別子を生成するための簡単なサンプル/アルゴリズムを持っている人はいますか?
jquery - jqGrid(jQuery)のセルからオブジェクトを取得できません
これが問題です。ddl(ドロップダウンリストまたは選択ボックス)を定義すると、選択した値がわかりません。ユーザーが行を編集するとき、ユーザーはリストから項目を選択できます。ただし、選択した項目は設定されていません。ユーザーがボタンをクリックして行を編集したときに、選択した項目を設定したい。
適切な方法は、jqGridのビルド時に作成されたddlを取得し、選択した値を設定することだと思います。
ユーザーが編集ボタンをクリックすると、ddlリストからデータを取得します
jqGridのセルからデータを取得する代わりに、domddl要素オブジェクトを取得したいと思います。
私が持っていたもう1つのアイデアは、正しいとは思いませんが、locationTextを使用し、それを使用して新しいddldom要素を作成することです。
このようなもの。
私がやろうとしていることをする簡単な方法はありますか?新しいdomselect要素を作成して、次のように各オプションを追加できることはわかっています。
しかし、jqGridからdom要素全体を取得する方法があるはずです。
ありがとう