Kezdőoldal » Számítástechnika » Programozás » Hogyan modelleznéd adatbázisba...

Hogyan modelleznéd adatbázisban a következőt?

Figyelt kérdés
Egy olyan adatszerkezet kell, amiben el lehet tárolni egy fában a főnököket, és a beosztottjaikat. Az a megoldás jobb, hogy egy tábla, és van egy fonok_id pluszban, vagy az, hogy csinálok egy plusz táblát dolgozo_id fonok_id oszlopokkal? Rekurzív algoritmussal kellene megjeleníteni egy webes MVC felületen.

2017. máj. 17. 15:22
 1/7 anonim ***** válasza:

Elsősorban attól függ, hogy 1-sok vagy sok-sok kapcsolatról van szó.

Ha mindenkinek csak egy főnöke lehet, akkor elég a fonok_id. Ha egy emberhez több főnök is tartozhat, akkor meg kell a pivot tábla.

Milyen MVC illetve ORM? Mert pl Laravel Eloquent ezt nagyon szépen megcsinálja pár sor kóddal.

2017. máj. 17. 15:47
Hasznos számodra ez a válasz?
 2/7 sharkxxx ***** válasza:

Ha fa struktúráról van szó, akkor elég egy tábla.

Itt van az SQL kód:


/* Szemelyek tabla */

CREATE TABLE t_user (

pk_i_id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, /* Szemely azonositoja */

s_name VARCHAR(100) NOT NULL, /* Szemely neve */

fk_i_boss_id INT(10) UNSIGNED NULL, /* Fonok azonositoja */


PRIMARY KEY (pk_i_id),

FOREIGN KEY (fk_i_boss_id) REFERENCES t_user (pk_i_id)

) ENGINE=InnoDB DEFAULT CHARACTER SET 'UTF8' COLLATE 'UTF8_GENERAL_CI';

2017. máj. 17. 16:21
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
Laravel lenne, de kezdő vagyok még benne.
2017. máj. 17. 16:30
 4/7 anonim ***** válasza:

Ha Laravel, akkor meg marha egyszerű.


A User migration-ba:

Schema::create('users', function (Blueprint $table) {

$table->increments('id');

$table->string('name',150);

$table->integer('boss_id')->unsigned()->nullable();

});


Aztán a User modelben:

public function boss() {

return $this->belongsTo('App\User','boss_id','id');

}


És innentől ha lekérsz egy User objektumot, akkor egyszerűen, akár több szinten keresztül le tudod kérdezni a főnököket.

Tehát pl:

$user = User::find(3);

És akkor működik ez:

$user->boss;

De ez is:

$user->boss->boss;

Már persze csak addig, amíg van főnöke az illetőnek.

2017. máj. 17. 17:50
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:
Ezer bocsánat, ha nagyon primitív vagyok. De tényleg most kezdtem foglalkozni vele.
2017. máj. 17. 20:05
 6/7 anonim ***** válasza:

A Laravel alapjait egy hét alatt megtanulod, youtube-on millió tutorial video van. A maradék meg majd jön fejlesztés közben, szerencsére a Laravel saját dokumentációja kiváló.

És amúgy piszok gyorsan lehet benne dolgozni, gyakorlatilag alád tol mindent.

2017. máj. 17. 20:11
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

Mondjuk nekem a Laravelre kellet írnom magamnak egy patch-et, mert volt olyan szolgáltató aki letiltotta a putenv függvényt, és PhpDotEnv konkrétan használhatatlan volt és a .env-et se tudtam olvasni env()-el... :D


megoldás: .env ekte úgy néz ki majdnem mint egy .ini féle fájl, oszt rátoltam egy ini readert php oldalon. Így meg megbabráltam a env() függvényt és jónapot. Persze azért ennél szebben. :)

2017. máj. 17. 21:54
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!