Hogyan modelleznéd adatbázisban a következőt?
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.
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';
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.
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.
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. :)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!