Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Webgamers. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

espe

Fortgeschrittener

  • »espe« ist der Autor dieses Themas

Beiträge: 198

Danksagungen: 494

  • Nachricht senden

1

Montag, 23. Februar 2015, 10:28

Laravel Schema Keys & Index

Moin,

benutzt hier jemand die Migrations von Laravel? Auch zum festlegen der Abhängigkeiten?

Welche Commands sind hierbei unsere besten Freunde?

In #17 ist durch increments() automatisch PK?
#18 und #19 dürfen nicht doppelt vorkommen?
#24 wird FK und muss vorher unsigned() werden?

ist ein ->onDelete('cascade') o.ä. wichtig?

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {

	/**
	 * Run the migrations.
	 *
	 * @return void
	 */
	public function up()
	{
		Schema::create('users', function(Blueprint $table)
		{
			$table->increments('id');
			$table->string('username')->unique();
			$table->string('email')->unique();
			$table->string('password', 60);
			$table->integer('level');
			$table->integer('experience');
			$table->integer('influence_points');
			$table->integer('team_id')->unsigned();
			$table->foreign('team_id')->references('id')->on('teams');
			$table->rememberToken();
			$table->timestamps();
		});
	}

	/**
	 * Reverse the migrations.
	 *
	 * @return void
	 */
	public function down()
	{
		Schema::drop('users');
	}

}

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »espe« (23. Februar 2015, 10:35)


Nik101010

Anfänger

Beiträge: 41

Wohnort: Stuttgart

Danksagungen: 8

  • Nachricht senden

2

Montag, 23. Februar 2015, 11:06

Hi,

die Doku von Laravel / eine SQL hilft bei allen deinen Fragen weiter ;-)

#17: ja, siehe Laravel Doku
#18, #19: ja, siehe Laravel Doku / SQL Doku
#24: unsigned definiert lediglich, dass der Wert nicht negativ werden kann (kann ein Primärschlüssel ja auch nicht ;-))


Gruß

3

Montag, 23. Februar 2015, 16:02


#24: unsigned definiert lediglich, dass der Wert nicht negativ werden kann (kann ein Primärschlüssel ja auch nicht ;-))


Quellcode

1
2
CREATE TABLE test (sp1 int DEFAULT -10 PRIMARY KEY);
INSERT INTO test VALUES (-9);

Wieso sollte das nicht funktionieren? Bzw., warum sollten Primary Keys nicht negativ sein dürfen?

edit #2:
[IMG]http://www.imageshost.de/img/png/TH_9a2303dc5f9a914de988e43978411f9b.png[/IMG]

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »Coodio« (23. Februar 2015, 16:17) aus folgendem Grund: Klammerfehler


Nik101010

Anfänger

Beiträge: 41

Wohnort: Stuttgart

Danksagungen: 8

  • Nachricht senden

4

Montag, 23. Februar 2015, 17:37


#24: unsigned definiert lediglich, dass der Wert nicht negativ werden kann (kann ein Primärschlüssel ja auch nicht ;-))


Quellcode

1
2
CREATE TABLE test (sp1 int DEFAULT -10 PRIMARY KEY);
INSERT INTO test VALUES (-9);

Wieso sollte das nicht funktionieren? Bzw., warum sollten Primary Keys nicht negativ sein dürfen?

edit #2:
[img]http://www.imageshost.de/img/png/TH_9a2303dc5f9a914de988e43978411f9b.png[/img]
Oooookay :D Ungenau formuliert... ein PK kann negativ werden, aber mal von der häufigsten Verwendung - auto increment - ausgehend, wird zumindest mit Defaulteinstellungen bei 1 angefangen ;-) Damit wird ein PK nicht negativ und damit muss man bei einem Verweis auf einen FK kein signed integer verwenden...

sinus

Fortgeschrittener

Beiträge: 226

Danksagungen: 75

  • Nachricht senden

5

Montag, 23. Februar 2015, 19:57


Wieso sollte das nicht funktionieren? Bzw., warum sollten Primary Keys nicht negativ sein dürfen?


primary keys, die "unsigned" sind, werden nie negativ sein können, weil unsigned ja bedeutet, dass diese kein vorzeichen haben, also immer im "+" sein werden :D

gruß
sinus
loading ..

niemand

unregistriert

6

Dienstag, 24. Februar 2015, 11:29

Ich behaupte mal, dass negative Indizes unexpected behaviour in euren Anwendungen hervorrufen koennten, da ihr ueblicherweise annehmt, dass diese nur positiv sind. Also wenn ich das machen wollt, dann von Anfang an so dafuer programmieren und testen, aber bitte nicht im Nachhinein umstellen.

Ähnliche Themen

Social Bookmarks