Datenbankschema eines job boards

aloajoe

Neuer Benutzer
Beiträge
2
Hallo zusammen,

ich bin relativ neu in der PHP/SQL-Welt und erstelle derzeit ein kleines job board, um besser mit der Materie vertraut zu werden. Allerdings komme ich mit dem Datenbankschema nicht weiter.

Im wesentlichen will ich 10 job-Kategorien anbieten, wie etwa IT, Legal, Accounting und so weiter, wobei jede Kategorie eigene Besonderheiten hat, die bei der Erstellung des jobs in die Datenbank gespeichert werden sollen.

Eigentlich wollte ich eine Datenbanktabelle mit den jeweiligen Kategorien erstellen, die dann die Datenbank jobs mit den einzelnen Kategorien verknüpft. Dabei kann ich jedoch nicht die eben genannten Besonderheiten miteingeben, da ja jede jobkategorie komplett verschiedene Felder aufweist. (Bei IT zum Beispiel verwendete Webapplikationen, bei Accounting zum Beispiel Größe des Unternehmens).

Sehe ich es also richtig, dass ich in diesem Fall für jede job-Kategorie eine eigene Tabelle benötige, um die kategoriespezifischen Werte zu speichern?

Es würden also folgende Tabellen notwendig sein:

user/location/it_job/legal_job/acc_job/ usw.

Schöner wäre natürlich:

user/location/jobs/categories

Dieser Fall sieht mir nämlich nicht sonderlich elegant aus. Funktioniert das auch anständig wenn ich beispielsweise 100 verschiedene job Kategorien verwende?


Besten Dank im Voraus für jede Art von Hilfe

aloajoe
 
Werbung:
ich bin auch neu hier, aber vielleicht kann ich auch mal jemandem weiterhelfen :D

stelle dir zur übersicht mal ein Entity Relationship Modell (ERM) auf!

Bau das das dann zum Beispiel so auf:

Einem Job sind 1 oder mehrere Besonderheiten zugeordnet und eine Besonderheit kann einem oder mehreren Job zugeordnet sein, weil zum Beispiel die Besonderheit Größe des Unternehmens für mehrere Jobs zählen kann.

Jede Besonderheit hat ihren eigenen Primärschlüssel und Attribute wie Bezeichnung. Bezeichnung sei dann Webapplikation, Unternehmensgröße, sonstiges und zusätzliche Attribute die du brauchst. Für die jeweilige Bezeichnung nicht genutzte Attribute könnten dann NULL-Werte sein.

Dann brauchst du nur 3 Tabellen: Jobs, Besonderheiten und eine Tabelle für die m:m-Beziehung.

Vielleicht hilft dir das weiter.
 
Hallo @Säsch ,

vielen lieben Dank für deine schnelle Antwort und Hilfe bei meinem Problem.
An einen solchen Ansatz habe ich tatsächlich nicht gedacht. Danke!

Glaubst du, dass dieses Schema auch Sinn macht, wenn jede job-Kategorie jeweils 3-4 Besonderheiten hat, die nur für diese job-Kategorie auftreten und ansonsten nicht anderweitig verwendet werden?

Danke und viele Grüße

@ukulele

Vielen Dank, werde ich mir mal genauer ansehen. Hört sich ziemlich treffend an.
 
durch die m:m Beziehung und die zusätzliche "Matrixtabelle" ist ein Gruppierung von einem Job mit mehreren Besonderheiten möglich und auch umgekehrt. An solche Dinge denkt das ERM automatisch :D

ERM vereinfacht sozusagen die relationale Mathematik. mir hat das sehr viel weiter geholfen bei meinem projekt.
 
Werbung:
je nach DB und dem, was diese kann, wäre EAV schon ein guter Ansatz. In PG könntest Du Vererbung nutzen, oder aber auch HSTORE-Datentyp (Key-Value-Store) oder die Daten als JSON(B) ablegen. HSTORE und JSONB bieten Möglichkeiten, index-basiert in diesen Daten zu suchen. EAV kann recht 'sperrig' werden.
 
Zurück
Oben