Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Συζητήσεις για την βάση δεδομένων MySQL και το phpMyAdmin

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
JaneDiKwak
Δημοσιεύσεις: 7
Εγγραφή: 05 Ιούλ 2013 10:16

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από JaneDiKwak » 05 Ιούλ 2013 10:23

Γεια σας! Ξεκίνησα τη δημιουργία web εφαρμογών για ενα εστιατόριο. Κατα τη δημιουργια της βάσης δεδομένων χρησιμοποιω mySql. Μέσα στα γνωρίσματα για τα προϊόντα που διατίθενται, υπαρχει και το γνωρισμα "φωτογραφία". Αναρωτιέμαι ποιος είναι ο κατάλληλος χαρακτηρισμός του γνωρίσματος αυτού κατά τη δημιουργία του πίνακα μου.

gvre
Δημοσιεύσεις: 992
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από gvre » 05 Ιούλ 2013 10:37

Κείμενο (varchar), στο οποίο θα αποθηκεύεις το όνομα του αρχείου.
Τελευταία επεξεργασία από το μέλος gvre την 05 Ιούλ 2013 10:42, έχει επεξεργασθεί 1 φορά συνολικά.

JaneDiKwak
Δημοσιεύσεις: 7
Εγγραφή: 05 Ιούλ 2013 10:16

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από JaneDiKwak » 05 Ιούλ 2013 10:38

Ευχαριστώ πολύ! :)

JaneDiKwak
Δημοσιεύσεις: 7
Εγγραφή: 05 Ιούλ 2013 10:16

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από JaneDiKwak » 09 Ιούλ 2013 23:13

Πάνω στο ίδιο project, δημιουργώντας πίνακα σχετικά με παραγγελεία, μου εμφανίζεται σφάλμα ΕRROR 1064(42000) με υπόδειξη την 1η γραμμη. Το τμήμα κώδικα είναι το ακούλουθο:


CREATE TABLE IF NOT EXISTS order(
o_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
quantity INT UNSIGNED NOT NULL,
date_time DATETIME NOT NULL,
o_s_username VARCHAR(30) NOT NULL,
o_price DECIMAL(3,2) NOT NULL,
popularity INT NOT NULL,
PRIMARY KEY (o_id),
FOREIGN KEY (o_s_username) REFERENCES user(username),
FOREIGN KEY (o_price) REFERENCES product(p_price)
ON DELETE CASCADE ON UPDATE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=greek;

Καμιά ιδέα;

thomasd
Δημοσιεύσεις: 31
Εγγραφή: 27 Ιουν 2013 10:57

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από thomasd » 09 Ιούλ 2013 23:27

Πρώτον, πρέπει να βάλεις μονά εισαγωγικά στο όνομα του πίνακα και στα πεδία.
Δεύτερον, αυτό που θέλεις να κάνεις δεν υποστηρίζεται από InnoDB, δοκίμασε MyISAM.

Δοκίμασε το παρακάτω

Κώδικας: Επιλογή όλων

CREATE TABLE IF NOT EXISTS `order` (
`o_id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
`quantity` INT UNSIGNED NOT NULL,
`date_time` DATETIME NOT NULL,
`o_s_username` VARCHAR(30) NOT NULL,
`o_price` DECIMAL(3,2) NOT NULL,
`popularity` INT NOT NULL,
PRIMARY KEY (`o_id`),
FOREIGN KEY (`o_s_username`) REFERENCES user(`username`),
FOREIGN KEY (`o_price`) REFERENCES product(`p_price`)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=MyISAM DEFAULT CHARSET=greek; 
Τελευταία επεξεργασία από το μέλος thomasd την 09 Ιούλ 2013 23:33, έχει επεξεργασθεί 1 φορά συνολικά.

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από dva_dev » 09 Ιούλ 2013 23:32

Άλλαξε για αρχή τα ονόματα όλων των πινάκων και όλων των πεδίων ώστε να μην είναι κάποια από τις δεσμευμένες λέξεις.
Τσεκάρισε ότι οι πίνακες και τα πεδία που χρησιμοποιείς σαν foreign keys υπάρχουν.
Τσεκάρισε ότι η database engine που χρησιμοποιείς υποστηρίζει foreign keys και cascade deletes/updates.

Δες και το http://www.kavoir.com/2009/09/mysql-eng ... -cons.html πριν αποφασίσεις τι είναι αυτό που χρειάζεσαι.

JaneDiKwak
Δημοσιεύσεις: 7
Εγγραφή: 05 Ιούλ 2013 10:16

Τύποι Γνωρισμάτων κατά τη δημιουργία πινάκων της βάσης

Δημοσίευση από JaneDiKwak » 09 Ιούλ 2013 23:38

Ο παραπάνω κώδικας δούλεψε κανονικά! Ευχαριστώ πολύ! :)

Απάντηση

Επιστροφή στο “MySQL”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες