Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Συμφορουμιτες και συμφορουμιτισες καλησπερα σας και καλως σας βρηκα!!

 

Αποφασισα λοιπον να ανοιξω αυτο εδω το θεμα καθως εχω βαλθει να υλοποιησω μια ιδεα για ενα site αγγελιων που ειχα στο παρελθον, αλλα λογω μη τριβης με το αντικειμενο Προγραμματισμος στον Ιστο εχω καποια προβληματα στην υλοποιηση.

 

Αρχικα θελω να ξεκαθαρισω οτι το site θελω να το κανω με 100% custom κωδικα και δεν προτιθεμαι να χρησιμοποιησω κανενα περιβαλλον αναπτυξης βλεπε Joomla , γιατι πιστευω οτι δεν υπαρχει δυνατοτητα απο εκει να αποδοθει πληρως το πλανο που εχω στο μυαλο μου!!

 

Ενα προβλημα που αντιμετωπιζω λοιπον εδω και καποιες μερες ειναι στον σχεδιασμο του σχηματος της Βασης Δεδομενων. Αυτο που θελω να πω ειναι οτι θελω το site να εχει δυο ειδων χρηστες, τους ιδιωτες χρηστες και τους επαγγελματιες (εμπορους) οι οποιοι θα ανεβαζουν τις αγγελιες τους!

 

Υποθετω οτι για να τους ξεχωριζω θα πρεπει να δημιουργησω δυο διαφορετικα tables ! Ενα table idiwtes_users ας πουμε κι εναν πινακα epagelmaties_users. Πως ομως θα μπορω να ξεχωρισω αν ενα αντικειμενο προς πωληση θα ειναι απο εμπορο ή ιδιωτη;;

 

Ευχαριστω προκαταβολικα!! :-)

Δημοσ.

Δε χρειάζεται κάτι τέτοιο... αρκεί ένα πεδίο BOOL / TINYINT στον πίνακα των χρηστών. Εκεί θα δηλώνεται εάν πρόκειται για επαγγελματία ή όχι.

 

Επ' ευκαιρίας, γύρνα πίσω στα βασικά. Εκεί που κόλλησες τα πράγματα είναι πολύ απλά. Δε θα μπορέσεις να στήσεις μια τέτοια εφαρμογή (που, ομολογουμένως, δεν είναι περίπλοκη ούτε έχει ιδιαίτερες απαιτήσεις) αν δε μπορείς να αντιμετωπίσεις προβλήματα τύπου «πως θα ξεχωρίσω τους επαγγελματίες απ' τους ιδιώτες», τα οποία δε θεωρούνται καν «προβλήματα». Back to the basics λοιπόν, μη βιάζεσαι...

Δημοσ.

Για να πω την αληθεια ετσι το εχω κανει!! Εχω μια bool τυπος_ιδιοκτητη!!! Αλλα λογικα θα πρεπει να μπει και στον πινακα του προιοντος ετσι?

 

Ευχαριστω πολυ για την απαντηση!!

Δημοσ.

Όχι... ο πίνακας των προϊόντων συνδέεται με το ID του χρήστη. Έπειτα, αφού γνωρίζεις για κάθε προϊόν ποιος χρήστης το ανήρτησε, μπορείς να αντλήσεις όποια άλλη πληροφορία για τον χρήστη θέλεις (από τον αντίστοιχο πίνακα φυσικά).

 

--- ΕΠΕΞΕΡΓΑΣΙΑ
 

Συμπληρώνω: διάβασε για SQL Joins και Sub-Queries.

Δημοσ.

Θα παραμεινω λιγο στο παραπανω προβλημα... Γιατι πιστευω το να βαλω σε ενα πινακα εμπορους και ιδωτες θα με εμποδισει απο το να αποφυγω τις διπλοεγγραφες... Κι αυτο που θελω να πω ειναι οτι ειχα σκεφτει ο πινακας επαγγελματιες να εχει πρωτευον κλειδι το ζευγαρι titlos_epixeirhshs και epwnumia_epixeirhshs!!! Ενω τωρα που θα ειναι ολοι μαζι πως θα γινει αυτο?? Θελω να πω οτι οι ιδιωτες δεν θα συμπληρωνουν αυτα τα δυο πεδια (θα ειναι κρυφα για αυτους). Επομενως Null!

 

εκτος αν το πρωτευον κλειδι το κανω τρειαδα

 

titlos_epixeirhshs και epwnumia_epixeirhshs και ID!!

Δημοσ.

Βασικά δε μπορείς να βάλεις PRIMARY_KEY τον τίτλο ή την επωνυμία της επιχείρησης. Τι εμποδίζει την ύπαρξη δύο επιχειρήσεων με επωνυμία «Παπαδόπουλος Μονοπρόσωπη ΕΠΕ» σε διαφορετικά μέρη στην Ελλάδα; You're screwed― το PRIMARY_KEY απαιτείται να είναι μοναδικό. Καλύτερα να βασιστείς στα IDs λοιπόν, τα οποία είναι αναγκαστικά μοναδικά.

Δημοσ.

Τις διπλοεγγραφές δε μπορείς να τις αποφύγεις έτσι κι αλλιώς με 100% επιτυχία. Εάν θέλει ο άλλος να εγγραφεί δεύτερη φορά, θα το κάνει...

 

Αλλά πέραν αυτού, τον μηχανισμό γι αυτό το σκοπό τον φτιάχνεις εσύ (π.χ. με έλεγχο στο e-mail του, κλπ). Δε μπορείς να βασιστείς στο ότι η βάση δεν επιτρέπει duplicate primary keys. Αν το κάνεις αυτό σίγουρα δε θα 'χεις καλά αποτελέσματα... δε ξέρω τι θα γίνει, αλλά δεν είναι καθόλου καλή ιδέα.

Δημοσ.

εγώ primary key θα έβαζα το mail πιθανώς ή ίσως και ζευγάρι με τον τύπο αν άφηνα περιθώριο κάποιος να πουλάει και σαν ιδιώτης και σαν επαγγελματίας

όλους τους χρήστες σε ένα πίνακα, με τον τύπο ακέραιο μάλλον και όχι boolean για να μπορώ να βάλω κι άλλους τυπους αν σκεφτω στο μέλλον

και στον πίνακα με τα προιόντα θα είχα το id της εγγραφής του χρήστη από το οποίο θα έπαιρνα τις πληροφορίες του

  • Like 1

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...