|
|
|
|
|
|
|||||||
| Software-Design Diskussionen auf Profi-Niveau: PHP Lösungen auf konzeptioneller Ebene |
|
|
|
LinkBack | Themen-Optionen | Thema bewerten |
|
|
#1 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 30.07.2008
Beiträge: 269
PHP-Kenntnisse: Fortgeschritten ![]() |
Hi,
ich versuche es mal hier, da ich denke, es ist nicht ausschließlich auf das DB-Design beschänkt. Folgendes: Ich habe einen Entity-Typ "Eintrag". Dieser hat mehrere Werte wie z. B. der Benutzer, der ihn erstellt hat, Zeitpunkt der Erstellung, etc. Jeder Eintrag hat jedoch einen speziellen Typ, der mehrere zusätzliche Informationen bringt. Ich nehme mal als Bsp. eine Gebrauchtwaren-Börse: Man kann einen Eintrag erstellen und weist diesem einen bestimmten Typ zu (z. B. Auto, Möbel, Kleidung, wie auch immer). Jeder dieser Typen, verfügt über eigene Merkmale. Man könnte jetzt sagen, dass man Autos, Möbel, usw. in entsprechende Kategorien packt und dann innerhalb der Kategorie "Auto" nur Autos ausgibt. Jedoch soll jetzt die Navigation regional orientiert sein. Das heißt, man soll z. B. alle Möbel, Autos, usw. für Berlin darstellen. Das habe ich im Moment so gelöst, dass es eine Tabelle t_entries gibt und zusätzlich für jeden Typ eine weitere Tabelle, die die Informationen typspezifisch erweitert (z. B.: Leistung bei Autos). Allerdings ist das in meinen Augen nicht besonders toll - daher die Frage, ob jemand weiß, wie man das besser machen kann... EDIT: Ich habe es in diesem Bereich gepostet, da letztendlich auch die Implementierung innerhalb der Applikation damit funktionieren muss. Geändert von xm22 (08.02.2010 um 17:43 Uhr). |
|
|
|
|
|
|
|
PHP Code Flüsterer
Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten
|
|
|
|
#3 (permalink) |
|
Moderator und Wett-König
|
Hallo xm22,
ich denke, du solltest nicht von einem DB-Design (ER-Modell) ausgehen, sondern vom Domänen-Modell. Für mich hast du mehrere Objekte:
Die beiden letzten sind mehr oder weniger beide Ordnungs-Kriterien, die die jeweils relevanten Entry-Objekte assoziieren. So kannst du ohne Probleme abfragen, welche Autos in welcher Kategorie oder in welcher Stadt zu haben sind. Wichtig bei allen Modellen: du musst zuerst überlegen, welche Objekte du hast und wie diese in Verbindung zueinander stehen. Dann wirst du dir viel leichter tun, das später in eine DB abzubilden. Mit dem GenericORMapper ist das übrigens straight forward, denn das UML kannst du quasi 1:1 in die Konfiguration übernehmen.
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
|
|
|
|
|
#5 (permalink) | ||
|
Moderator und Wett-König
|
Hi,
ich würde für alle Objekte eine eigene Tabelle erstellen und die Beziehungen über jeweils eine weitere Tabelle. Sofern du nur 1:n oder n:1 benötigst, kannst du in der gegenüberliegenden Tabelle auch nur den Fremdschlüssel speichern. Zitat:
Zitat:
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||
|
|
|
|
|
#6 (permalink) | |
|
Erfahrener Benutzer
Registriert seit: 30.07.2008
Beiträge: 269
PHP-Kenntnisse: Fortgeschritten ![]() |
Zitat:
Entry-Tabelle: id|type|standardinfo1|standardinfo2|... Attributstabelle f_entry_id|key|value Oder meinst Du, für jeden Entry-Typ eine eigene Attributstabelle? |
|
|
|
|
|
|
#7 (permalink) | ||
|
Moderator und Wett-König
|
Denke doch nicht immer ausgehend von Tabellen, sondern von Domänen-Objekten.
Zitat:
![]() Zitat:
__________________
Viele Grüße, Dr.E. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1. Think about software design before you start to write code! 2. Discuss and review it together with experts! 3. Choose good tools (-> Adventure PHP Framework (APF))! 4. Write clean and reusable software only! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
||
|
|
|
|
|
#8 (permalink) |
|
moderatives Dielektrikum
Registriert seit: 21.05.2008
Beiträge: 21.228
PHP-Kenntnisse: Fortgeschritten ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Vgl. Diskussion hier: http://www.php.de/datenbanken/64428-...tml#post491997
__________________
-- „Eins ist Fakt: Gescannt wird nackt!“ Privatsphäre 2.0 - Nacktscanner mit Eyetracking. Unser Flugzeug darf kein geschlechtsfreier Raum sein. -- |
|
|
|
|
|
#9 (permalink) |
|
Erfahrener Benutzer
Registriert seit: 30.07.2008
Beiträge: 269
PHP-Kenntnisse: Fortgeschritten ![]() |
@Dr.E.: Aber wie soll man das auslesen? Angenommen, man möchte 20 dieser Einträge - Dann muss man ja auch 20x die Attributstabelle auslesen.
EDIT: Gerade habe ich den von Nikosch verlinkten Beitrag gelesen.. Ich habe mal dort weiter geschrieben, weil es da schon mehr Facetten als hier gibt. Vielleicht sollte man den Beitrag hier dort mit anknüppern oder mit Verweis auf den anderen schließen. Geändert von xm22 (10.02.2010 um 07:20 Uhr). |
|
|
|
|
| Themen-Optionen | |
| Thema bewerten | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| [Erledigt] general entity "id" not defined and no default entity | FreddyS | HTML, Usability und Barrierefreiheit | 2 | 07.01.2010 18:30 |
| [Erledigt] SimpleXMLElement::__construct() [simplexmlelement.--construct]: Entity: li | Mitch26 | PHP Einsteiger | 17 | 30.12.2009 23:58 |
| [Erledigt] cannot generate system identifier for general entity "mode" | cycap | HTML, Usability und Barrierefreiheit | 1 | 21.05.2008 15:28 |
| Besucher kamen über folgende Suchanfragen bei Google auf diese Seite |
| mehreren jede entity, tools in php gutes softwaredesign |