[00:01] Alles Gute an Ba9894, Carny, Kermi
[19:00] Lottoziehung in 04d 00:00h
[00:00] Songs gespielt gestern: 0
[00:01] Alles Gute an Jahracer, blue
[02:02] Post by Aragorn @ Was sind Eure Lieblingsserien?
[09:46] Post by HG @ Was sind Eure Lieblingsserien?
Trackmania Minecraft Andere Spiele
Antwort
Themen-Optionen
#1
Alt 03.02.14, 00:02:58
Bastelfreed vom Peinet ^^
Pained_Soul
Benutzerbild von Pained_Soul
Moderator
Registriert seit: 22.08.11
Beiträge: 156
IRC Zeilen: 1202

Spenden-Award 

Wie so der ein oder andere bestimmt mitbekommen hat, bastel ich ab und an ganz gern bissl rum

aktuell geht es um Datenbank/SQL (ganz einfach das ding von open office weil ich grad faul war ^^)

So weit so gut, jetzt habe ich mir gedacht ich möchte - ähnlich wie in minecraft - items aus items herstellen..
somit gibts zwei tabellen einmal rezepte und einmal items..

in den items hab ich die id als fk vom rezept hinterlegt und in den rezepten jeweils die fks der items aus denen die bestehen.

kleines beispiel anhand von minecraft:

piston herstellen:

Items
ID Name Rezept
1 cobble
2 redstone
3 planks
4 iron
5 Piston 1

Rezepte
ID Name FK1 FK2 FK3 FK4 FK5 FK6 FK7 FK8 FK9
1 Piston 3 3 3 1 4 1 1 2 1

Sooo und jetzt möchte ich ganz gerne sagen hey ich bau 3 Stück von der sorte..
was brauch ich an cobble, planks, ..

kann das die db übernehmen oder muss ich mir da tatsälich anders behelfen?

Ich bin faul, ich weiss!
Ich schäm mich auch manchmal dafür

Aber mir wurde mal erklärt: "Du musst immer versuchen mit dem geringstmöglichen Aufwand das größtmögliche Ergebnis zu erreichen!"

Also -> weiter machen wie immer
#2
Alt 03.02.14, 02:10:31
blue
Benutzerbild von blue
Big Daddy
Registriert seit: 02.02.03
Alter: 37
Geschlecht: ♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3

Spenden-Award Spenden-Award Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

blue eine Nachricht über ICQ schicken
Klar kann das die DB übernehmen aber ... ganz plump gesagt: Dein DB-Modell ist zu einfältig gestaltet. Ein Wink mit dem Zaunfahl: Ein Rezept besteht aus einer dynamisch gestalteten Anzahl von verschiedenen "Items". Dein Rezept besteht durchweg aus maximal neun Items. Was machst Du, wenn ein Item aus zehn besteht?

Du solltest Dich bei deinem Problem eher auf die Gestaltung der Datenbank konzentrieren, nicht auf die Aufgaben der Datenbank. IMHO sind Datenbanken zum Speichern der Daten gedacht. Zwar lassen sich damit auch Berechnungen durchführen, aber generell sind klassische Datenbanken zu statisch. Entsprechend leidet die Skalierbarkeit deiner Anwendung.

BTW: Ich bin absichtlich nicht konkret auf deine Frage eingegangen. Ich bin der Meinung, dass Datenbanken zur Speicherung von Informationen zuständig sind - nicht aber zur Auswertung bzw. zur Berechnung.

C++ ist böse
Die Unterschiede [der Programmiersprachen] sind enorm: Während Programme wie die Schreibsoftware Microsoft Word mit HTML programmiert wurden, greifen die Entwickler von Metzel-Games oft zu der Hacker-Programmiersprache C++. Wie gefährlich diese Sprache für Jugendliche ist, zeigte sich erst im September 2009, als der schülerVZ-Hacker Matthias L. vor seinem Selbstmord einen Abschiedsbrief verfaßte – in C++.
#3
Alt 03.02.14, 06:09:05
Pained_Soul
Benutzerbild von Pained_Soul
Moderator
Registriert seit: 22.08.11
Beiträge: 156
IRC Zeilen: 1202

Spenden-Award 

Wenn das Rezept aus mehr als 9 besteht, machens wir einfach wie bei Minecraft und basteln vorher ein anderes ^^

ist eh nur beispielsweise gedacht und so zum rum probieren - da stehen irgendwann noch mehr Sachen drin - aber rein aus Neugierde, wie würdest du es machen?

aktuell gehts mir nur darum ne Liste zu bekommen wieviel von welchen Grunditem ich brauchen würde um das zu bauen bzw. wenn es aus nen weitern Teil besteht wiederum was ich dafür brauche usw.

Ich bin faul, ich weiss!
Ich schäm mich auch manchmal dafür

Aber mir wurde mal erklärt: "Du musst immer versuchen mit dem geringstmöglichen Aufwand das größtmögliche Ergebnis zu erreichen!"

Also -> weiter machen wie immer
#4
Alt 03.02.14, 20:03:09
Zahl
Benutzerbild von Zahl
Senior Member Täglich verrückt!
Registriert seit: 29.01.03
Alter: 37
Geschlecht: ♂
Beiträge: 11.512
IRC Zeilen: 180545
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
Generell finde ich es nicht so schön solche Anwendungen mit Access oder Base zu entwickeln, da man dabei immer so dazu gedrängt wird, komplett alles in SQL bzw. dem DB-Schema auszudrücken, was man machen will.
In z.B. einer Webanwendung wär es ganz einfach, die Berechnung dann nach dem Query durchzuführen, d.h. deine 9 Felder mit 3 zu multiplizieren, und dann auszugeben. Für den Minecraft-Fall mag es reichen, einfach 9 Spalten für die 9 Felder im Crafting zu definieren, universeller wäre es natürlich, eine n:m Beziehung über eine weitere Tabelle zu realisieren, dann könnte man beliebig viele Zutaten haben. Über dein statisches Modell hast du dafür quasi kostenlos schon die Anordnung der Items für das Rezept erledigt, im n:m-Modell musst du das über eine zusätzliche Spalte regeln und am besten durch einen UNIQUE Key verhindern, dass du für ein Rezept ein Feld mehrfach belegst. Wenn dir die Anordnung zum Craften egal ist kannst du auch noch ein Mengen-Feld einführen, damit jedes Item in einem Rezept nur einmal auftaucht.

Hoffe das sind erstmal genug Denkanstöße.


風向轉變時,有人築牆,有人造風車
#5
Alt 04.02.14, 08:58:41
Pained_Soul
Benutzerbild von Pained_Soul
Moderator
Registriert seit: 22.08.11
Beiträge: 156
IRC Zeilen: 1202

Spenden-Award 

Ja das mit der n:m Beziehung hatte ich auch schon im Kopf - eben mit ner zusätzlichen Tabelle Ebenso die Geschichte mit dem Mengen-Feld.

Es wäre also besser, wenn ich direkt in mysql in verbindung mit php rüber switche und dort anfange zum rum basteln?

Naja.. oke.. was für ne Frage.. 0.o war ja von anfang an klar.. eigentlich..

Hatte mir halt erhofft, dass es irgend ne "hey machs doch so und alles is super Lösung" gibt, ohne mich jetzt wieder Tage mit allem auseinander setzen zu müssen - gibt ja etliche auf DB basierende Systeme die so Primär- und Sekundärbedarfsrechnungen aufstellen - hätt mir daher vorstellen können, dass es so ne alles wird Super Funktion gibt
aber gut, oke ^^
Besser vorher mal gefragt als sich hinterher geärgert

Ich bin faul, ich weiss!
Ich schäm mich auch manchmal dafür

Aber mir wurde mal erklärt: "Du musst immer versuchen mit dem geringstmöglichen Aufwand das größtmögliche Ergebnis zu erreichen!"

Also -> weiter machen wie immer
#6
Alt 04.02.14, 23:28:23
Zahl
Benutzerbild von Zahl
Senior Member Täglich verrückt!
Registriert seit: 29.01.03
Alter: 37
Geschlecht: ♂
Beiträge: 11.512
IRC Zeilen: 180545
Quizrunden gewonnen: 76

Goldener Topposter Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

Zahl eine Nachricht über ICQ schicken
Machbar ist das wie gesagt auch mit Access und Konsorten. Ich erinnere mich noch dunkel an einen Access Kurs in meiner Schulzeit. Ich fand es damals eher gewöhnungsbedürftig, dass man da dann mit SQL, diesen komischen Formen und VBS rumgewurstet hat. Es schien mir auch so, als wenn man es wo nur geht vermeidet, VBS zu benutzen, und dann nur bei diesen Formularen hängen blieb, in denen einiges nicht so einfach ging, und man es dann eben in seine SQL-Ausdrücke verfrachtet hat.
Wenn du es Webbasiert machst - z.B. mit PHP - dann kannst du es auch ganz leicht hinterher rumzeigen, ohne dass die Leute sich erst irgendwas runterladen müsen.


風向轉變時,有人築牆,有人造風車
#7
Alt 05.02.14, 12:59:05
Pained_Soul
Benutzerbild von Pained_Soul
Moderator
Registriert seit: 22.08.11
Beiträge: 156
IRC Zeilen: 1202

Spenden-Award 

Alles klar, dann muss ich mich echt wieder damit auseinander setzen

wie gesagt, ich hatte halt gehofft, es gäb speziell für so nen Anwendungsfall ne alles wird gut Formel

Jetzt muss ich mir nur noch überlegen, wie ich das dann gestalte, wenn mein Teil komplexer ist zum herstellen und ich die gesamtkosten haben will XD

Bsp.:

BG1 besteht aus Teil 1 und Teil 2
BG2 besteht aus Teil 1, Teil 3 und BG1
Endprodukt besteht aus BG1 und BG2

So verschachtelte sachen halt..

wie mach ich das jetzt am besten, dass ich raus bekomm wieviel ich von Teil 1,2 und 3 insg. brauch

ich hab nur haufen komplizierte Sachen dazu im kopf.. und ob das dann so funktioniert ist die nächste Frage

Meine bisherigen ideen scheitern irgendwie denke ich daran, dass ich es eben universell halten möchte - für den Fall nicht zu wissen wie oft das verschachtelt ist.
Bzw. mir darüber später keine Gedanken machen zu müssen

Ich bin faul, ich weiss!
Ich schäm mich auch manchmal dafür

Aber mir wurde mal erklärt: "Du musst immer versuchen mit dem geringstmöglichen Aufwand das größtmögliche Ergebnis zu erreichen!"

Also -> weiter machen wie immer
#8
Alt 05.02.14, 21:43:48
blue
Benutzerbild von blue
Big Daddy
Registriert seit: 02.02.03
Alter: 37
Geschlecht: ♂
Beiträge: 4.974
IRC Zeilen: 10670
Quizrunden gewonnen: 3

Spenden-Award Spenden-Award Silberne Postauszeichnung Bronzener Topposter Blecherner Postaward Core-Award 

blue eine Nachricht über ICQ schicken
@Pained_Soul: Bah ... ist bei mir völlig untergegangen. Wie aber angemerkt sind Datenbanken IMHO zum Speichern von Daten gedacht. Verlagere die Auswertung der Daten in eine Anwendung.
Wie auch schon von Zahl gesagt, wäre eine n:m-Beziehung zielführender, als eine statische Anzahl Felder.

BTW, Zahl nannte es einen Plus-Punkt, dass die Werte bereits sortiert aus der Tabelle kommen ... IMHO ist das allerdings alles andere als vorteilhaft. Was ist, wenn sich die Ordnung ändern soll? Hier ein Tipp, den nie vergessen solltest: Das Datenbank-Modell einer bereits genutzten Anwendung zu ändern ist die absolute Hölle - zumindest bei RDBMS. Entweder du programmierst Dir einen Wolf, oder Du fängst an das Modell zu erweitern - was auf längere Sicht zu Verstößen der Normalformen führt.

Du solltest Dir vielleicht mal andere Datenbank wie CouchDB ansehen. Ein ziemlich alternativer Ansatz zu relationalen DBMS. Außerdem kannst Du hier sogar direkt mit JavaScript die Daten abgreifen und musst nicht erst alles noch mit PHP o.ä. abfragen.

/e1:
Bitte beachte aber, dass Du beim Ändern von Daten immer eine Art Sicherheits-Layer einbaust, welche die Eingaben zunächst validiert. Schließlich ist es nicht besonders schwierig JavaScript zu ändern bzw. einzuschleusen

C++ ist böse
Die Unterschiede [der Programmiersprachen] sind enorm: Während Programme wie die Schreibsoftware Microsoft Word mit HTML programmiert wurden, greifen die Entwickler von Metzel-Games oft zu der Hacker-Programmiersprache C++. Wie gefährlich diese Sprache für Jugendliche ist, zeigte sich erst im September 2009, als der schülerVZ-Hacker Matthias L. vor seinem Selbstmord einen Abschiedsbrief verfaßte – in C++.
Antwort
Lesezeichen
Facebook

Direkt antworten
Nachricht:
Benutzername: 
Email (nicht ausfüllen!): Sicherheitsgrafik
Optionen

« Vorheriges Thema | Nächstes Thema »

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu
Aktivität
Chat (20 Min)
0 Zeilen

Teamspeak 3

Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48:23 Uhr.


Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template-Modifikationen durch TMS
Die Betreiber haften nicht für die Inhalte der User. Die Beiträge spiegeln ausschließlich persönliche Meinungen wider, und nicht die der Seitenbetreiber.