ホーム   フォーラム   FAQ
 
メインメニュー
ログイン
ユーザー名:

パスワード:


パスワード紛失

RDB

  • このフォーラムに新しいトピックを立てることはできません
  • このフォーラムではゲスト投稿が禁止されています

なし RDB

msg# 1
depth:
0
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 .3 .4 .5 .6 | 投稿日時 2011-7-20 11:03
nkmt  長老   投稿数: 1668
無知なんで、くだらない質問かもしれませんが、
例えば商品コードが主キーになったデータが
いくつもあったとします。

商品マスタを1件削除すると、同じ商品コードを持ったデータは
連動して自動的に削除する、といった事がMS-SQLとMagicで
簡単に実現出来るのでしょうか?

いろんな機能があるのに、それを使いこなせないのなら
MS-SQLを使う価値も半減するのでしょうね。

MS-SQLを使う事によりエクセル等から容易にデータを
取り出せる事もわかりましたし、このまま使おうと
思っておりますが。
投票数:1 平均点:10.00

なし Re: RDB

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-20 12:01
pu_mahalo  長老 居住地: 大阪  投稿数: 775
こんにちは Puです

after トリガーを使えば できるかと思いますが
試してませんが(^^;

でわ〜でわ〜
投票数:0 平均点:0.00

なし Re: RDB

msg# 1.2
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-20 19:14
nobukoshi802  一人前   投稿数: 118
トリガーで実現出来ますが
MAGICのリポジトリ管理外なので
多様すると、どこで処理してたっけ?と悩みます。
(MAGICのクロスリファレンスでは当然検索出来ませんので)

基本は、MAGICで記述した方が管理がしやすいです。
トリガーは、レスポンスや必須条件になる場合は使用します。
また、トリガーの記述は、Transact-SQLの知識が必要になります。
投票数:0 平均点:0.00

なし Re: RDB

msg# 1.3
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 10:17
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

参考までですが、その逆のこと、つまり、ひとつでもその商品コードを
持ったレコードが存在すれば、商品マスターからそのコードのレコードは
削除できないようにする、といったことはできますよ。

データリポジトリにある、「外部キー」がそれです。これが SQL の醍醐味
のひとつでもありますね。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

なし Re: RDB

msg# 1.4
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2011-7-27 10:29
nkmt  長老   投稿数: 1668
Tandaさん こんにちは。

商品マスタを削除しようとした時、各種伝票データを見に行き、
使われていたら削除不可!というロジックを書く予定をして
おりました。

もしかすると商品コードを書き換えたら、各種伝票に散らばっている
商品コードも書き換わったりするんですかね?
投票数:0 平均点:0.00

なし Re: Re: RDB

msg# 1.4.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 10:46
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

> もしかすると商品コードを書き換えたら、各種伝票に散らばっている
> 商品コードも書き換わったりするんですかね?

試したわけではないので憶測ですが、外部キー制約が掛かっていれば、
商品コードの書き換えはエラーとなるはずです(あくまで推測です)。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

なし Re: Re: RDB

msg# 1.4.2
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 10:49
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

> 商品マスタを削除しようとした時、各種伝票データを見に行き、
> 使われていたら削除不可!というロジックを書く予定をして
> おりました。

まさに、それを実現するのが「SQL の外部キー制約」の機能です。
プログラムの記述は不要です。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

なし Re: RDB

msg# 1.5
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2011-7-27 11:27 | 最終変更
nkmt  長老   投稿数: 1668
商品マスタに、商品コードだけで構成されたインデックスがあり、
それの「プライマリーキー」というチェックボックスにチェックを付けました。

見積明細データに、外部キーを作ってみました。
見積明細データの商品コードと、
商品マスタの商品コードを結び付けた格好になったと思います。

見積明細データで使われている
商品マスタの商品コードをAPGで書き換えようとすると、
「成約違反」というエラーが出ました。
矛盾が起きない為の仕組みなんでしょうね。

※1対Nの1側を書き換えるとN側も一斉書き換えみたいな事
 って可能なんですかね?


次に、見積明細データをAPGで開いてみました。
見積明細の削除は可能でした。

見積明細の中の商品コードの書き換えは、
商品マスタに存在している他の商品コードであれば変更出来るようです。
(商品コード未入力はNGでした。
 商品マスタに、商品コード=未入力を作ったら
 見積明細の商品コードも未入力に出来ました。)

たまに商品コード、得意先コードなどに意味を持たせる客がいます。
よってそれらのコードを書き換え可能にという要求があります。
(本当はやりたくないし痛い目にあった事もあります。)

この場合、1対NのN側を全件書き換えて該当コード未使用
状態にしておかないと駄目ですね。

伝票に使われているコードの不正削除、
コード矛盾変更を防げるだけでも外部キーは
使う価値がありそうだと思いました。
投票数:0 平均点:0.00

なし Re: Re: RDB

msg# 1.5.1
depth:
2
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 .2 | 投稿日時 2011-7-27 16:17
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

レスを書こうと思っていたのですが、投稿後に編集されたみたいで
ツジツマが合わなくなってしまって、投稿を止めました。

外部キーは便利ですよ。これだけでも、SQL を使う価値があると思います。

他にも、SQL にしか無い「結合リンク」とか「外部リンク」とかもありますし。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

なし Re: Re: RDB

msg# 1.5.1.1
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 16:57
nkmt  長老   投稿数: 1668
お世話になりました。
出来る出来ないで間違いがあったので投稿を編集しました。
元々投稿の趣旨がMSSQLを使いこなせないならPervasiveに
戻った方がいいのかなと思っての事でした。
丹田さんや他の方もMSSQLをお勧めしていたし
このまま進みたいと思います。


投票数:0 平均点:0.00

なし Re: Re: Re: RDB

msg# 1.5.1.2
depth:
3
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 16:58
Tanda  長老   投稿数: 2151
nkmt さん、こんにちは。

そういえば、外部キーを設定すると、APG をしただけで結合リンクが
自動生成されます。これも楽ちんですね。

タンダコンピュータ/丹田 昌信
投票数:0 平均点:0.00

なし Re: RDB

msg# 1.6
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿なし | 投稿日時 2011-7-27 17:09 | 最終変更
nkmt  長老   投稿数: 1668
> APG をしただけで結合リンクが自動生成されます。
> これも楽ちんですね。

見積明細データをAPGしたら、商品マスタの内容も
APGの右端にくっついてきました。

プログラムリポジトリで、見積明細データをAPGしたら
メインソースに、見積明細データが作られるのは当然として
結合リンク、商品マスタ
というのが出てきました。面白いですね。

でも結合リンク、外部リンク・・・まだよく意味を理解していません。^^;

結合リンクは、商品マスタにちゃんと商品コードが存在する
メインソースだけを表示、

外部リンクは商品マスタに有る無いに関わらずメインソースを表示
という事のようですね。

※ 「くっ島」さんにもその説明がありました。


ER図などを出せるツールがあるのか知りませんが、
外部キー設定を見たりするのでしょうね。
投票数:0 平均点:0.00

  条件検索へ


Copyright (C) Magic Software Japan K.K. All Rights Reserved.
個人情報保護方針 会員規約