デフォルトの多対多のデータベーススキーマ

ステファン-v

誰かがこの多対多の関係を喜んで見てくれることを願っていますこの例はLaravelプロジェクト用ですが、詳細はそれほど重要ではありません。

アクション

+----+------+--------+-------------+------+--------+------------+
| id | name | script | description | icon | custom | project_id |
+----+------+--------+-------------+------+--------+------------+

パイプライン(action_server これはピボットテーブルです

+----+-----------+-----------+-------+
| id | action_id | server_id | order |
+----+-----------+-----------+-------+

サーバ

+----+------+------------+------------+
| id | name | ip_address | project_id |
+----+------+------------+------------+

この多対多の関係は、デプロイメントサーバーに使用され、アクションはデプロイメントのパイプラインの一部です。

  • アクションは複数のサーバーで実行できます。
  • ユーザーは、カスタムスクリプトを使用してアクションを追加できます。
  • デプロイメントパイプラインのすべてのアクションは、 project_id

この概念はLaravel内で機能し、与えられたに基づいてアクションを簡単に取得できproject_idます。次に、を使用して、展開を実行するために必要なサーバーアクションをフェッチできますaction->servers()

ただし、デフォルトのアクションを追加する方法が必要です。アクションが常にユーザー提供のスクリプトを持つのではなく、ユーザーが選択してデプロイメントパイプラインに追加できるように、事前定義されたスクリプトを使用してアクションを提供する機能が必要です。

これらの事前定義されたアクションはaction、そこで定義されたアクションがに関連付けられているため、テーブルに詰め込むことはできませんproject_idこれらは一般的である必要があります。

action_idパイプライン内のはすでに外部キーで設定されているため、現在の設定でこれらの事前定義されたアクション用に別のテーブルを単純に作成することはできません

これまでのところpre-defineduser-definedアクションとユーザーが自分で作成しアクションの2つの概念を混ぜ合わせているように感じます。ただし、それらは同じパイプラインにあり、最終的には正しい順序で実行される必要があります。

これがどのように達成されるかについての考えはありますか?私はすべての提案を受け入れます。

編集

これを引き出した後、考えられる解決策は、別のピボットテーブルを追加して、テーブルからaction_projectを切り離す(削除する)ことができるようにすることですLaravelでこれをきれいに保つ方法を考えています。project_idaction

action_project

+----+-----------+------------+
| id | action_id | project_id |
+----+-----------+------------+
Gerd Wagner

問題を概念的に要約します。

  1. アプリケーション(「プロジェクト」)にはカスタムアクションが関連付けられています
  2. 標準アクションは特定のアプリケーションに対して定義されていません
  3. サーバーには/ホストアプリケーションがあります
  4. パイプラインは、どのサーバーでどの順序で実行する「アクション」を定義します

必要なのは、両方のケースを包含するスーパークラスの「アクション」に対応する、カスタムアクション標準アクションの一般化だけだと思いますこれにより、次の表が表示されます。

  1. actions(id, type, name, description)typeいずれかであることcustomstandard
  2. custom_actions(id, script, icon, custom, project_id)

また、あなたはの属性追加できcustom_actionsにしactions、それらにのためのすべてのNULL持つ標準のアクションを

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

デフォルトと1対多の関係を持つデータベースの質問

分類Dev

1対多の関係のデータベーススキーマ

分類Dev

Django-データベースレベルで多対多のフィールドを初期化します

分類Dev

データベースの多対多からドメインの1対多へのマッピング

分類Dev

Northwind データベース JOIN QUERY 3 つのテーブル間 (多対多)

分類Dev

django adminとinlines:「スルー」モデルを使用した多対多-パフォーマンスの問題

分類Dev

Djangoで多対多のデータベースを操作する

分類Dev

多対多のデータベースphpmyadmin

分類Dev

Windows Phone8.1の多対多関係データベース

分類Dev

多対多のCassandraデータベース

分類Dev

Rails:多対多のデータベース設計

分類Dev

java hibernate1対多の「データベースからのHibernateマッピングファイルとPOJO」

分類Dev

Laravel多対多ピボットテーブルの異なるデータベース

分類Dev

mysql:追加のパラメーターを持つ多対多の関連データのスキーマ

分類Dev

動的フォームビルダーのデータベーススキーマ

分類Dev

Djangoの多対多のパフォーマンスの問題

分類Dev

User、UserRoleのデータベース設計-多対多の関係

分類Dev

フォームの多対多フィールドのスタイリング

分類Dev

データベース1対多の関係クエリ

分類Dev

多対多の関係と関数パラメーターのデフォルト値

分類Dev

EFを使用して多対多の関係にフォームデータを挿入するパフォーマンス

分類Dev

EFコア2:多対多のデータベース(リンクテーブル)

分類Dev

MySQLデータベースの多くの行にフォームデータ(フォーム内のテーブル)を保存する方法

分類Dev

コードファーストのデータベースマッピング、多対多の関係でテーブルが欠落している(作成されていない)

分類Dev

データベースでのDjangoのデフォルト

分類Dev

エンティティフレームワークコードは、最初に多対多のデータベーステーブルを作成しません

分類Dev

結合テーブルなしの多対多の関係を持つ読み取り専用データベースのマッピング

分類Dev

モデルとデータベーステーブルの間に1対多の関係を作成する

分類Dev

GraphQL DynamoDBスキーマのデフォルトの主キー?

Related 関連記事

  1. 1

    デフォルトと1対多の関係を持つデータベースの質問

  2. 2

    1対多の関係のデータベーススキーマ

  3. 3

    Django-データベースレベルで多対多のフィールドを初期化します

  4. 4

    データベースの多対多からドメインの1対多へのマッピング

  5. 5

    Northwind データベース JOIN QUERY 3 つのテーブル間 (多対多)

  6. 6

    django adminとinlines:「スルー」モデルを使用した多対多-パフォーマンスの問題

  7. 7

    Djangoで多対多のデータベースを操作する

  8. 8

    多対多のデータベースphpmyadmin

  9. 9

    Windows Phone8.1の多対多関係データベース

  10. 10

    多対多のCassandraデータベース

  11. 11

    Rails:多対多のデータベース設計

  12. 12

    java hibernate1対多の「データベースからのHibernateマッピングファイルとPOJO」

  13. 13

    Laravel多対多ピボットテーブルの異なるデータベース

  14. 14

    mysql:追加のパラメーターを持つ多対多の関連データのスキーマ

  15. 15

    動的フォームビルダーのデータベーススキーマ

  16. 16

    Djangoの多対多のパフォーマンスの問題

  17. 17

    User、UserRoleのデータベース設計-多対多の関係

  18. 18

    フォームの多対多フィールドのスタイリング

  19. 19

    データベース1対多の関係クエリ

  20. 20

    多対多の関係と関数パラメーターのデフォルト値

  21. 21

    EFを使用して多対多の関係にフォームデータを挿入するパフォーマンス

  22. 22

    EFコア2:多対多のデータベース(リンクテーブル)

  23. 23

    MySQLデータベースの多くの行にフォームデータ(フォーム内のテーブル)を保存する方法

  24. 24

    コードファーストのデータベースマッピング、多対多の関係でテーブルが欠落している(作成されていない)

  25. 25

    データベースでのDjangoのデフォルト

  26. 26

    エンティティフレームワークコードは、最初に多対多のデータベーステーブルを作成しません

  27. 27

    結合テーブルなしの多対多の関係を持つ読み取り専用データベースのマッピング

  28. 28

    モデルとデータベーステーブルの間に1対多の関係を作成する

  29. 29

    GraphQL DynamoDBスキーマのデフォルトの主キー?

ホットタグ

アーカイブ