質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

Q&A

解決済

1回答

1294閲覧

データベースのORMにおける、外部キーについて教えてください

yuujiMotoki

総合スコア90

SQLite

SQLiteはリレーショナルデータベース管理システムの1つで、サーバーではなくライブラリとして使用されている。

0グッド

0クリップ

投稿2020/10/05 10:59

#内容

SQLARCHEMYを使ったデータベースを検討しています。

データベースにはテーブルが3つあります。

いま仕入れマスタの中にnumber(多)というフィールドがあります。

これに対して、品種マスタ(1対1)とラベルマスタ(1対1)があります。

どちらもnumberを外部キーで参照します。

table

1仕入れマスタ 2id 3number(fk) 4date 5person 6 7品種マスタ 8number(pk) 9name 10cost 11 12ラベルマスタ 13number(pk) 14value 15date 16

#質問事項

これをSQLARCHEMYでモデル化する際ですが、number(fk)というのは、同時に2つのテーブルに対して
外部キーとして関連を付けることは可能なのでしょうか?

イメージ的には外部キーは一つのテーブルにしか割り当てられないと思っていて
その際は下記のように外部キーを2つもたせないといけないのかと思っています。

table

1仕入れマスタ 2id 3number1(fk) →品種マスタ 4number2(fk) →ラベルマスタ 5date 6person 7

もしくは下記のように、仕入れマスタ →品種マスタ→ラベルマスタ のように
直列にしなければいけないのでしょうか?

table

1仕入れマスタ 2id 3number(fk) →品種マスタ 4date 5person 6 7品種マスタ 8number(pk) 9number-a(pk) →ラベルマスタ 10name 11cost 12 13ラベルマスタ 14number-a(pk) 15value 16date 17

どうもORMを使う前提の場合に、一つの外部キーに
複数テーブルを参照したい場合のやり方が良く分かりません。

いっそのこと、品種マスタとラベルマスタをくっつけてしまうのも
ありかもしれませんが、データベースが分離しているので
なんとか2つを関連付けたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Orlofsky

2020/10/05 13:45

テーブル定義の列名とデータ型や桁数を明確にするために、CREATE TABLE文に変更しては?データも何件かずつ INSERT文で提示できた方が良いかと。
guest

回答1

0

ベストアンサー

引用テキスト同時に2つのテーブルに対して

外部キーとして関連を付けることは可能なのでしょうか?

可能になります。
こちらが似ていそうなので、参考にどうぞ。
http://www.techscore.com/tech/sql/SQL3/03_04.html/

投稿2020/10/05 11:20

編集2020/10/05 13:49
firegrape

総合スコア902

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

firegrape

2020/10/05 13:49

修正しました!
yuujiMotoki

2020/11/02 21:41

いろいろとありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問