thiva7 Δημοσ. 6 Νοεμβρίου 2023 Δημοσ. 6 Νοεμβρίου 2023 (επεξεργασμένο) Καλησπερα σε ολους Προσπαθώ να φτιάξω σε ενα μινι πρόγραμμα που εχω συσχέτιση συχετιση των χρηστών μεταξύ τους. το φτιαχνω σε python μια απλη βαση χωρις πολλα πολα για τους χρηστες CREATE TABLE IF NOT EXISTS Users ( user_id INTEGER PRIMARY KEY, username TEXT) και η βαση για την συσχέτιση CREATE TABLE IF NOT EXISTS Relationships ( relationship_id INTEGER PRIMARY KEY, user1_id INTEGER, user2_id INTEGER, relationship_type TEXT) Τι Query πρεπει να κανω η να βαλω στο κωδικα για να παιρνω σωστα τα δεδομενα ? εννοω πχ εαν ο user1 ειναι πατερας του user2 οταν μπαινεις στην καρτελα του user1 να δειχνει τον user2 ως Γιο , και στην καρτελα του user2 τον user1 ως πατερα. και με την ιδια λογικη για μητερα κλπ... Ευχαριστω Επεξ/σία 6 Νοεμβρίου 2023 από thiva7
bilakos26 Δημοσ. 6 Νοεμβρίου 2023 Δημοσ. 6 Νοεμβρίου 2023 Αν αντιλήφθηκα σωστά την ερώτησή σου, ας υποθέσουμε οτι έχουμε τις παρακάτω εκχωρήσεις: INSERT INTO users(user_id, username) VALUES (1, 'Thanos'); INSERT INTO users(user_id, username) VALUES (2, 'Vasilis'); INSERT INTO relationships(relationship_id , user1_id, user2_id, relationship_type) VALUES (1, 1, 2, 'Son'); INSERT INTO relationships(relationship_id , user1_id, user2_id, relationship_type) VALUES (2, 2, 1, 'Father'); Με βάση αυτό, για να δούμε την σχέση μεταξύ του χρήστη 1 και χρήστη 2 μπορούμε να κάνουμε τo εξής query: SELECT U2.username, R.relationship_type FROM relationships R INNER JOIN users U1 ON R.user1_id = U1.user_id INNER JOIN users U2 ON R.user2_id = U2.user_id WHERE U1.user_id = 1; Ελπίζω να σε βοήθησα.
thiva7 Δημοσ. 7 Νοεμβρίου 2023 Μέλος Δημοσ. 7 Νοεμβρίου 2023 Στις 6/11/2023 στις 11:09 ΠΜ, bilakos26 είπε Αν αντιλήφθηκα σωστά την ερώτησή σου, ας υποθέσουμε οτι έχουμε τις παρακάτω εκχωρήσεις: INSERT INTO users(user_id, username) VALUES (1, 'Thanos'); INSERT INTO users(user_id, username) VALUES (2, 'Vasilis'); INSERT INTO relationships(relationship_id , user1_id, user2_id, relationship_type) VALUES (1, 1, 2, 'Son'); INSERT INTO relationships(relationship_id , user1_id, user2_id, relationship_type) VALUES (2, 2, 1, 'Father'); Με βάση αυτό, για να δούμε την σχέση μεταξύ του χρήστη 1 και χρήστη 2 μπορούμε να κάνουμε τo εξής query: SELECT U2.username, R.relationship_type FROM relationships R INNER JOIN users U1 ON R.user1_id = U1.user_id INNER JOIN users U2 ON R.user2_id = U2.user_id WHERE U1.user_id = 1; Ελπίζω να σε βοήθησα. Σε ευχαριστω για την απαντηση , δεν υπαρχει τροπος να προσπεράσω την πολλαπλη εισαγωγη δεδομενων?
bilakos26 Δημοσ. 10 Νοεμβρίου 2023 Δημοσ. 10 Νοεμβρίου 2023 (επεξεργασμένο) Η πολλαπλη εισαγωγη δεδομένων που σου έχω δώσει είναι απλά σαν παράδειγμα, το οποιο μπορεις και να αφαιρέσεις. Επεξ/σία 10 Νοεμβρίου 2023 από bilakos26
thiva7 Δημοσ. 10 Νοεμβρίου 2023 Μέλος Δημοσ. 10 Νοεμβρίου 2023 13 ώρες πριν, bilakos26 είπε Η πολλαπλη εισαγωγη δεδομένων που σου έχω δώσει είναι απλά σαν παράδειγμα, το οποιο μπορεις και να αφαιρέσεις. Μα άμα το αφαιρέσω... Δεν θα δείχνει σαν Πατέρα και γιό. Αυτό που έχεις στείλει στο παράδειγμα με μικρές διαφορές το έχω τωρα. Το θέμα μου είναι ότι αν βάλω πχ βάλω γιος οποίο id και να ψάξω και στους δύο θα δείχνει γιος...
bilakos26 Δημοσ. 12 Νοεμβρίου 2023 Δημοσ. 12 Νοεμβρίου 2023 Στις 10/11/2023 στις 2:52 ΜΜ, thiva7 είπε Μα άμα το αφαιρέσω... Δεν θα δείχνει σαν Πατέρα και γιό. Αυτό που έχεις στείλει στο παράδειγμα με μικρές διαφορές το έχω τωρα. Το θέμα μου είναι ότι αν βάλω πχ βάλω γιος οποίο id και να ψάξω και στους δύο θα δείχνει γιος... Αυτο το "γιος" που αναφερεις, με ποιον τροπο το εκχωρεις και με ποιον τροπο το κανεις αναζητηση;
thiva7 Δημοσ. 12 Νοεμβρίου 2023 Μέλος Δημοσ. 12 Νοεμβρίου 2023 Μα δεν κάνω κάποια αναζήτηση. Πχ αν ο Θάνος είναι ο πατέρας του Βασίλη μόλις μπούμε στην καρτέλα τους θέλουμε να δείξει την σωστή συσχέτιση. Θα ήθελα να αποφύγω την πολλαπλη καταχώρηση... Αλλά στο τέλος εκεί θα καταλειξω μάλλον
Λύση bilakos26 Δημοσ. 13 Νοεμβρίου 2023 Λύση Δημοσ. 13 Νοεμβρίου 2023 16 ώρες πριν, thiva7 είπε Μα δεν κάνω κάποια αναζήτηση. Πχ αν ο Θάνος είναι ο πατέρας του Βασίλη μόλις μπούμε στην καρτέλα τους θέλουμε να δείξει την σωστή συσχέτιση. Θα ήθελα να αποφύγω την πολλαπλη καταχώρηση... Αλλά στο τέλος εκεί θα καταλειξω μάλλον Συγγνωμη για το "αναζητηση" ητανε παρερμηνια δικια μου. Απο την στιγμη που η συσχετιση θα γινει απο την μερια της καρτελας, οπου πιθανοτατα για τον Θανο θα πρεπει να ορισεις οτι ο γιος του ειναι ο Βασιλης ή το οτι ο Βασιλης εχει για πατερα τον Θανο, δεν βλεπω διαφορετικη λυση για να κανεις την συσχετιση μεταξυ τους χωρις πολλαπλες εκχωρησεις. Και με ChatGPT που το ετρεξα λιγο, σχετικα ιδια ερμηνια μου δινει. Μπορεις να δεις εδω την συζητηση που ειχα μαζι του
thiva7 Δημοσ. 13 Νοεμβρίου 2023 Μέλος Δημοσ. 13 Νοεμβρίου 2023 37 λεπτά πριν, bilakos26 είπε Συγγνωμη για το "αναζητηση" ητανε παρερμηνια δικια μου. Απο την στιγμη που η συσχετιση θα γινει απο την μερια της καρτελας, οπου πιθανοτατα για τον Θανο θα πρεπει να ορισεις οτι ο γιος του ειναι ο Βασιλης ή το οτι ο Βασιλης εχει για πατερα τον Θανο, δεν βλεπω διαφορετικη λυση για να κανεις την συσχετιση μεταξυ τους χωρις πολλαπλες εκχωρησεις. Και με ChatGPT που το ετρεξα λιγο, σχετικα ιδια ερμηνια μου δινει. Μπορεις να δεις εδω την συζητηση που ειχα μαζι του Ναι και γω δεν βλέπω να γίνεται κάτι διαφορετικό. Σε ευχαριστώ πολύ για το χρόνο σου 1
k33theod Δημοσ. 13 Νοεμβρίου 2023 Δημοσ. 13 Νοεμβρίου 2023 (επεξεργασμένο) Γειά και από μένα Ίσως μπορείς να δείς το relationship σαν ζεύγος τιμών δηλαδή στην καταχώριση θα πάει έτσι INSERT INTO relationships(relationship_id , user1_id, user2_id, relationship_type) VALUES (1, 1, 2, ['Father', 'Son']); Αυτό σημαίνει ότι το 1 είναι Father και το 2 Son. Όταν θέλεις τη σχέση του user2_id προς το user1_id πρέπει να αντιστρέφεις τις τιμές. To datatype που θα χρησιμοποιήσεις δεν ξέρω σίγουρα κάτι που υποστηρίζει η database. Json υποστηρίζουν οι περισσότερες, array ίσως ή και string Επεξ/σία 13 Νοεμβρίου 2023 από k33theod
thiva7 Δημοσ. 14 Νοεμβρίου 2023 Μέλος Δημοσ. 14 Νοεμβρίου 2023 Στις 13/11/2023 στις 6:54 ΜΜ, k33theod είπε Γειά και από μένα Ίσως μπορείς να δείς το relationship σαν ζεύγος τιμών δηλαδή στην καταχώριση θα πάει έτσι INSERT INTO relationships(relationship_id , user1_id, user2_id, relationship_type) VALUES (1, 1, 2, ['Father', 'Son']); Αυτό σημαίνει ότι το 1 είναι Father και το 2 Son. Όταν θέλεις τη σχέση του user2_id προς το user1_id πρέπει να αντιστρέφεις τις τιμές. To datatype που θα χρησιμοποιήσεις δεν ξέρω σίγουρα κάτι που υποστηρίζει η database. Json υποστηρίζουν οι περισσότερες, array ίσως ή και string Δεν είναι κακή ιδέα... Θα το δοκιμάσω αργότερα να το δω. Ευχαριστώ
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα