Skip to content

Latest commit

 

History

History
178 lines (143 loc) · 5.68 KB

M1.md

File metadata and controls

178 lines (143 loc) · 5.68 KB

Dossier M1

Inhaltsverzeichnis

  1. Ergebnisse
  2. Notizen

Ergebnisse

  • Aufsetzen von der Entwicklungsumbebung:

    • Shell Script zum Erstellen eines Dumps

      pg_dump --dbname=postgresql://dev:dev@127.0.0.1:5432/abalo --file=abalo.dump -c
    • Shell Script zum Wiederherstellen eines Dumps

      psql --dbname=postgresql://dev:dev@127.0.0.1:5432/abalo --file=abalo.dump 
  • Aufgabe 5

    • Tabelle erstellen
      create table ab_testdata
      (
          id          int8               not null
              constraint ab_testdata_pk
                  primary key,
          ab_testname varchar(80) unique not null
      );
      
      comment on column ab_testdata.id is 'Primärschlüssel';
      
      comment on column ab_testdata.ab_testname is 'Testname eines Artikels';
    • Tabelle füllen
      INSERT INTO public.ab_testdata (id, ab_testname)
      VALUES (1, 'Fotokamera');
      
      INSERT INTO public.ab_testdata (id, ab_testname)
      VALUES (2, 'Blitzlicht');
  • Aufgabe 7

    • Befehlsreihenfolge im Terminal Doc:
    • Fehler eingebaut Doc?
      • Um ein Migrate zurückzuspulen:
        php artisan migrate:rollback --step=1
      • Um alle Migrates zurückzuspulen:
        php artisan migrate:rollback
    • Sonstige Befehle:
    • Besonderheiten:
      • Table: ab_article
        2 Befehle für Attribut ab_creator_id
          $table->unsignedBigInteger('ab_creator_id')->nullable(false);
          $table->foreign('ab_creator_id')->references('id')->on('ab_user');
        Wurde so gelöst, weil das ab_creator_id das id Attribut der ab_user Tabelle referenzieren soll.
      • Table: ab_articlecategory - ähnliches wie oben
      • Table: ab_article_has_articlecategory
        • Problem: zusammengesetztes Attribut soll UNIQUE sein und aus den beiden vorherigen Attributen zusammengesetzt werden
        • Muss nicht umbedingt ein getrenntes Attribut sein, sondern man könnte ledeglich über einem Controller überprüfen, ob es UNIQUE ist
          • Vorteile:
            • Durch ein weiteres Attribut umgehen wir diese logische Überprüfung direkt beim Eintragen in der Datenbank
            • Logik muss nur für Zusammensetzung der Attribute verwendet werden
        •     // Reference ab_articlecategory
              $table->unsignedBigInteger('ab_articlecategory_id')->nullable(false);
              $table->foreign('ab_articlecategory_id')->references('id')->on('ab_articlecategory');
          
              // Reference ab_article
              $table->unsignedBigInteger("ab_article_id")->nullable(false);
              $table->foreign('ab_article_id')->references('id')->on('ab_article');
          
              // Variable that uses logic (controller later on) to concatenate both values
              $table->unsignedBigInteger("ab_UNIQUE_article_AND_category")->nullable(false)->unique();
  • Aufgabe 8

    ER Diagramm

  • Aufgabe 9

    Vorgehensweise:

    •   php artisan make:seeder DevelopmentData
    • Codetemplate für den Seeder benutzen und anpassen Doc
      <?php
          namespace Database\Seeders;
      
          use Illuminate\Database\Seeder;
          use Illuminate\Support\Facades\DB;
          use Illuminate\Support\Facades\Hash;
          use Illuminate\Support\Str;
      
          class DatabaseSeeder extends Seeder
          {
              /**
              * Run the database seeders.
              */
              public function run(): void
              {
                  DB::table('users')->insert([
                  'name' => Str::random(10),
                  'email' => Str::random(10).'@example.com',
                  'password' => Hash::make('password'),
                  ]);
              }
          }
      ?>
      • Added seeder class to the main seeder file DatabaseSeeder:
        // In DatabaseSeeder run()
        $this->call(DevelopmentData::class);
      • Ran the following command to seed the tables:
        // In Bash
        php artisan db:seed
  • Aufgabe 10

    •   php artisan make:controller ArticleController
        php artisan make:model Articles
    • Directory views/articles/ und Datei overview.blade erstellt
  • Aufgabe 11

    • A factory and seeder were used to add 10.000 records to the user table. The seeder can be enabled in the DatabaseSeeder class. Screenshot of the data

Notizen

  • Models (DBWT PP 24)
    • Model configuration: page 23
    • Creating a model entry: page 25
    • Reading one entry: page 26
    • Reading multiple entries: page 27
    • Updating entries: page 28
    • Deleting entries: page 29
    • ::all() and ::chunk()
    • Eloquent Models
  • Migration basics 1
  • Migration basics 2