πια είναι η καλύτερη σχεδίαση για eshop

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από korgr » 01 Ιουν 2011 10:08

pimpogio έγραψε:αυτο που λες δεν μου φαινετε τοσο λογικο...
αποθηκευεις δηλαδη το ονομα του πινακα ? και που χρειαζετε αυτο ?δεν ειναι πλεονασμος ?
Δες αν βρεις χρόνο αυτό το βίντεο που περιγράφει τις ενότητες του Odyssey και μάλλον θα καταλάβεις γιατί είναι το πιο απαραίτητο απ' όλα να αποθηκευθεί το όνομα του πίνακα!

Κατά τα άλλα συμφωνώ σε όλα όσα είπες, άλλωστε σε γενικές γραμμές είναι η μέθοδος που ακολουθώ κι εγώ για πολυγλωσσικότητα, κατηγοριοποίηση, Extras κλπ

Άβαταρ μέλους
Lykos22
Δημοσιεύσεις: 89
Εγγραφή: 29 Μαρ 2011 16:28
Τοποθεσία: UK

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από Lykos22 » 30 Ιούλ 2013 11:53

jpk έγραψε:Λες Khronos, ότι θέλεις να φτιάξεις αυτή την εφαρμογή για εκπαιδευτικούς λόγους. Για αυτό τον λόγο η άποψή μου είναι ότι είναι σίγουρα πιο παιδευτικό να δημιουργήσεις ένα κεντρικό πίνακα προϊόντων με όλα τα κοινά χαρακτηριστικά και μέσα από την εφαρμογή διαχείρισης να δώσεις την δυνατότητα δημιουργίας τύπων προϊόντων (με ιδιαίτερα χαρακτηριστικά – πεδία ενός πίνακα ανά τύπο). Στην συνέχεια έχεις την δυνατότητα ή να ορίζεις τον τύπο του προϊόντος στην εισαγωγή προϊόντος (δυναμικό αλλά πολύπλοκο στην χρήση) ή στον ορισμό μιας κατηγορίας προϊόντων (που σημαίνει ότι όλα τα προϊόντα της κατηγορίας έχουν τον ίδιο τύπο προϊόντων – περιοριστικό αλλά εύκολο σχετικά για τον διαχειριστή).
Και εγώ ασχολούμαι με την κατασκευή ενός eshop για εκπαιδευτικούς λόγους βασισμένο σε CodeIgniter, ωστόσο προσπαθώ να το κάνω όσο πιο επαγγελματικό γίνεται. Σαν οδηγό για το πώς θα το φτιάξω έχω πάρει το plaisio.gr.

Οι πίνακές που έχω φτιάξει μέχρι στιγμής είναι (επίσης να αναφέρω πως κάθε πίνακάς μου στο CodeIgniter είναι και model, δηλ product_model, category_model κλπ κλπ ):

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

CREATE TABLE IF NOT EXISTS `brands` (
  `brand_id` int(11) NOT NULL AUTO_INCREMENT,
  `brand_name` varchar(50) NOT NULL,
  PRIMARY KEY (`brand_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

--
-- Dumping data for table `brands`
--

INSERT INTO `brands` (`brand_id`, `brand_name`) VALUES
(1, 'Apple'),
(2, 'Acer'),
(3, 'Sony'),
(4, 'Toshiba'),
(5, 'Olympus'),
(6, 'Nikon'),
(7, 'HP');

-- --------------------------------------------------------

--
-- Table structure for table `categories`
--

CREATE TABLE IF NOT EXISTS `categories` (
  `category_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `parent_id` int(10) unsigned NOT NULL DEFAULT '0',
  `category_name` varchar(50) NOT NULL,
  `order` smallint(9) NOT NULL,
  PRIMARY KEY (`category_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

--
-- Dumping data for table `categories`
--

INSERT INTO `categories` (`category_id`, `parent_id`, `category_name`, `order`) VALUES
(1, 0, 'Computers', 1),
(2, 0, 'Phones', 5),
(3, 1, 'Desktops', 2),
(4, 1, 'Laptops', 3),
(5, 0, 'Digital Cameras', 4);

-- --------------------------------------------------------

--
-- Table structure for table `features`
--

CREATE TABLE IF NOT EXISTS `features` (
  `feature_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `feature_name` varchar(50) NOT NULL,
  PRIMARY KEY (`feature_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=8 ;

--
-- Dumping data for table `features`
--

INSERT INTO `features` (`feature_id`, `feature_name`) VALUES
(1, 'Processor'),
(2, 'RAM'),
(3, 'Operating System (OS)'),
(4, 'Optical Zoom'),
(5, 'Hard Disk'),
(6, 'Weight'),
(7, 'Dimentions');

-- --------------------------------------------------------

--
-- Table structure for table `features_to_products`
--

CREATE TABLE IF NOT EXISTS `features_to_products` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `feature_id` int(10) unsigned NOT NULL,          // px 1, 2, 3, 4, 5, 
  `product_id` int(10) unsigned NOT NULL,         // 1, 1, 1, 3, 1
  `value` varchar(255) NOT NULL,                     // πχ Intel Core I5 3 Ghz, 4Gb, Windows 8 Home edition, 12 mpx, 500Gb Sata II, etc etc
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

-- --------------------------------------------------------

--
-- Table structure for table `products`
--

CREATE TABLE IF NOT EXISTS `products` (
  `product_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `product_name` varchar(100) NOT NULL,
  `brand_id` int(11) unsigned NOT NULL,
  `category_id` int(10) unsigned NOT NULL DEFAULT '0',
  `general_description` varchar(255) NOT NULL,
  `visible` tinyint(1) NOT NULL DEFAULT '0',
  PRIMARY KEY (`product_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `products`
--

INSERT INTO `products` (`product_id`, `product_name`, `brand_id`, `category_id`, `general_description`, `visible`) VALUES
&#40;1, 'Apple iMac MC814GR-Z0M7', 1, 4, '<p>iMac sort description goes here.</p>', 1&#41;;

-- --------------------------------------------------------

--
-- Table structure for table `product_versions`
--

CREATE TABLE IF NOT EXISTS `product_versions` &#40;
  `vers_id` int&#40;10&#41; unsigned NOT NULL AUTO_INCREMENT,
  `product_id` int&#40;10&#41; unsigned NOT NULL,
  `barcode` int&#40;11&#41; NOT NULL,
  `price` decimal&#40;6,2&#41; NOT NULL,
  `stock` tinyint&#40;4&#41; NOT NULL,
  `version_description` text NOT NULL,
  PRIMARY KEY &#40;`vers_id`&#41;,
  UNIQUE KEY `barcode` &#40;`barcode`&#41;
&#41; ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ;

--
-- Dumping data for table `product_versions`
--

INSERT INTO `product_versions` &#40;`vers_id`, `product_id`, `barcode`, `price`, `stock`, `version_description`&#41; VALUES
&#40;1, 1, 1658506, 1912.50, 15, '<p>Version Description Goes here</p>'&#41;;
Αυτό που θέλω να κάνω είναι να συνδέω τα χαρακτηριστικά μου (features) με τα προϊόντα μου από την πλευρά του Admin και επειδή όπως είπε και ο Khronos
Khronos έγραψε: Εγώ θέλω να μου προτείνετε τον τρόπο που δουλεύετε εσείς σε πραγματικές συνθήκες!
θα ήθελα να με κατευθύνετε λίγο όπου θεωρείτε ότι έχω κάποιο λάθος ή υπάρχει κάποιος πιο εύκολος τρόπος.

Στην αρχή εμφάνιζα όλα τα χαρακτηριστικά μου στην φόρμα μου και δίπλα από το κάθε id & όνομα θα έδινα το αντίστοιχο feature-value, φανταστείτε κάτι τέτοιο:

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

 <tbody>
<?php foreach &#40;$features as $feature&#41;&#58; ?>
<tr>
 <td>
 <?php echo form_checkbox&#40;'feature_id&#91;&#93;', $feature->feature_id&#41;; ?>
 <?php echo $feature->feature_name; ?>
 </td>
 <td><input type="text" name="feature_value&#91;&#93;" value="<?php echo set_value&#40;'feature_value&#91;&#93;', //$feature->feature_value&#41;; ?>" /></td>
 </tr>
<?php endforeach; ?>
</tbody>
αλλά επειδή έτσι "τραβούσα" από τη βάση και features που μπορεί να μην χρειάζονταν σε ένα προϊόν (πχ το Apple iMac δεν χρειάζεται το Digital Zoom που πάει σε μία φωτογραφική μηχανή, αντίστοιχα μία Nikon δεν χρειάζεται τη RAM), σκέφτηκα να περιορίσω κάπως τις επιλογές στο κάθε προιόν αντιστοιχώντας τα features και με τις κατηγορίες των προιόντων, δηλ να φτιάξω ακόμα έναν πίνακα

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

features_to_categories
id &#40;pk&#41;
category_id
feature_id
Αυτή η προσέγγιση είναι καλύτερη/πιο σωστή? υπάρχει κάποιος τρόπος άλλος που μπορεί να είναι καλύτερος ή πιο αποδοτικός που θα μπορούσαν τα ψαρακτηριστικά να αντιστοιχούν στα προϊόντα??

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από geomagas » 30 Ιούλ 2013 17:01

Αν κατάλαβα καλά, η ερώτησή σου αφορά τη ΒΔ και όχι το interface.
Παρ' όλα αυτά, το θέμα σου σηκώνει πολλή συζήτηση, γι αυτό θα αναφερθώ επιγραμματικά.
Θα πρέπει να ξεχωρίσεις λίγο τις έννοιες. Άλλο feature και άλλο attribute. Πρέπει να αποφασίσεις τι θεωρείς attributes, για το classification των προϊόντων που έχεις αποφασίσει, και να τα υλοποιήσεις σαν πεδία σε πίνακες με σχέσεις IS-A, όπως είπα και σε αυτό το topic. Μετά, αφήνεις τα features στον πίνακα συσχέτισης που έχεις ήδη φτιάξει.

Και μερικές γενικότερες επισημάνσεις:
- Το να απεικονίσεις τους πίνακες 1:1 με μοντέλα του CI νομίζω ότι είναι πολύ περιοριστική αντιμετώπιση, και ίσως το συναντήσεις στην πορεία.
- Σου λείπουν τα foreign keys! Μην τα παραλείπεις, κάποτε θα σου "σώσουν τη ζωή".

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από Khronos » 30 Ιούλ 2013 19:40

@Lykos22
geomagas έγραψε:Πρέπει να αποφασίσεις τι θεωρείς attributes, για το classification των προϊόντων που έχεις αποφασίσει, και να τα υλοποιήσεις σαν πεδία σε πίνακες με σχέσεις IS-A, όπως είπα και σε αυτό το topic. Μετά, αφήνεις τα features στον πίνακα συσχέτισης που έχεις ήδη φτιάξει.
Δεν υπάρχει "πρέπει", υπάρχει τι "ταιριάζει" σε κάθε περίπτωση.
dva_dev έγραψε:To καλό με το class table inheritance είναι ότι θα φτιάξεις τη βάση σου, και θα παίρνεις τα προϊόντα σου σε χρόνο μηδέν.
Το καλό με το eav είναι ότι αφού φτιάξεις τη βάση σου μπορείς και ξεκινήσεις να πουλάς βελόνες και να φτάσεις να πουλάς μέχρι διαστημόπλοια και πλανήτες, πιθανώς χωρίς να χρειαστεί να ξανακούσεις τις λέξεις βάση δεδομένων.

Εσύ περίπου που κυμαίνεσαι; Ξέρεις τι προϊόντα έχεις και τι θα πουλάς και σε νοιάζει να έρχονται όσο το δυνατόν πιο γρήγορα; ή δεν έχεις ιδέα και θέλεις να μπορείς να πουλάς τα πάντα (μα τα πάντα);
Αν θέλεις να φτιάξεις μια πλατφόρμα eshop που θα τη χρησιμοποιείς σε κάθε περίπτωση, πήγαινε με τον τρόπο που έχεις ηδη ξεκινήσει (eav).

Αν έχεις συγκεκριμένη περίπτωση στο μυαλό σου. πήγαινε με αυτό που είπε και ο geomags (class table inheritance).

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από geomagas » 30 Ιούλ 2013 20:31

Khronos έγραψε:@Lykos22
geomagas έγραψε:Πρέπει να αποφασίσεις τι θεωρείς attributes, για το classification των προϊόντων που έχεις αποφασίσει, και να τα υλοποιήσεις σαν πεδία σε πίνακες με σχέσεις IS-A, όπως είπα και σε αυτό το topic. Μετά, αφήνεις τα features στον πίνακα συσχέτισης που έχεις ήδη φτιάξει.
Δεν υπάρχει "πρέπει",
Κι όμως υπάρχει. Πάντα υπάρχει ένα "πρέπει"...
Khronos έγραψε:υπάρχει τι "ταιριάζει" σε κάθε περίπτωση.
Αυτό λέω κι εγώ. Όταν λοιπόν κάποιος αποφασίσει τι θέλει να κάνει, μοντελοποιεί την εφαρμογή του. Επειδή η μοντελοποίηση είναι στάνταρντ διαδικασία, για να ισχυριστεί κάποιος ότι την ακολουθεί, θα πρέπει να ακολουθήσει συγκεκριμένα βήματα (αυτά που ορίζει η τυποποιημένη διαδικασία). Αλλιώς, ας ισχυριστεί ότι ακολουθεί το δικό του super-duper εφεύρημα, fine by me.
Είδες που πάντα, τελικά, "πρέπει";
Khronos έγραψε:Αν θέλεις να φτιάξεις μια πλατφόρμα eshop που θα τη χρησιμοποιείς σε κάθε περίπτωση, πήγαινε με τον τρόπο που έχεις ηδη ξεκινήσει (eav).
Αν θέλεις, μπορείς να το τεκμηριώσεις αυτό;
Khronos έγραψε:....που είπε και ο geomags (class table inheritance)
Ο geomagas είπε σχέσεις IS-A, όπως του το έμαθαν οι δασκάλοι του, που ήταν σοφότεροι από αυτόν. Η έκφραση "class table inheritance" ανήκει σε κάποιον που θέλει να πουλήσει βιβλία, και ακροβατεί σε γλωσσοπλασίες για να προσποιηθεί ότι ανακάλυψε μία νέα πρωτοποριακή μέθοδο. Μην ψαρώνετε....

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από korgr » 30 Ιούλ 2013 21:12

geomagas, άσχετο αλλά σαν τον pimpogio ακούγεσαι :)

Καλό το "by the book" αλλά πολλές φορές έξω από τα στερεότυπα που σας είπαν να ακολουθείτε στα πανεπιστήμια και στις σχολές, έρχεται το πραγματικό innovation.
Μην κολάτε σε όρους αλλά στην ουσία!

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από geomagas » 30 Ιούλ 2013 21:34

korgr έγραψε:geomagas, άσχετο αλλά σαν τον pimpogio ακούγεσαι :)
Τώρα αυτό δεν ξέρω πως να το εκλάβω, αλλά υποθέτω ότι θα πρέπει να μελετήσω τον pimpogio ως φυσιογνωμία προκειμένου να καταλάβω... :D
edit: Τώρα που διάβασα πιο προσεκτικά όλο το topic, και ειδικά για την απάντησή του σε σένα, είμαι υποχρεωμένος να το θεωρήσω κοπλιμέντο. Thanx!!!
korgr έγραψε: Καλό το "by the book" αλλά πολλές φορές έξω από τα στερεότυπα που σας είπαν να ακολουθείτε στα πανεπιστήμια και στις σχολές, έρχεται το πραγματικό innovation.
Μην κολάτε σε όρους αλλά στην ουσία!
Κατ' αρχήν, μην νομίσεις ούτε για μια στιγμή ότι είσαι ο πρώτος που προσπαθεί, με γενικότητες, να μου "περάσει" αντιλήψεις περί innovation και "out-of-the-box-thinking". Δεν λέω ότι δεν υπάρχει κάτι τέτοιο, απλά ότι, αν κάτι είναι innovative θα πρέπει να αποδεικνύει πρώτα αν, και γιατί, είναι καλύτερο από τη standard διαδικασία. Ως τότε, διατηρώ το δικαίωμα να συνομιλώ, με άλλους επαγγελματίες της Πληροφορικής, χρησιμοποιώντας γλώσσα της Πληροφορικής.

Επίσης προσπαθείς να δημιουργήσεις την εντύπωση ότι "κολλάμε σε όρους". Είπαμε, είναι μία γλώσσα για να συνεννοούμαστε. Και περιέχει συγκεκριμένους όρους. Αν εγώ σου πω "κοίτα ένα όχημα με τέσσερις τροχούς που κινείται με βενζίνη" δεν θα μου πεις, εύλογα, "Και γιατί δε λες κοίτα ένα αυτοκίνητο, να συνεννοηθούμε"; Θα "κολλάς σε όρους" τότε;

Και τέλος, πες μου κάτι πραγματικά innovative, που δεν στηρίχτηκε σε "by the book" κανόνες προκειμένου να λειτουργήσει.

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από korgr » 30 Ιούλ 2013 23:03

Σ' ευχαριστώ που μου επιβεβαιώνεις πως είσαι και εσύ "pimpogio"
geomagas έγραψε: Και τέλος, πες μου κάτι πραγματικά innovative, που δεν στηρίχτηκε σε "by the book" κανόνες προκειμένου να λειτουργήσει.
Αυτό :D

Και επειδή πιθανά να βιαστείς να πεις "άλλο ένα CMS", να σε ενημερώσω πως:
  • Στηρίζεται σε ένα php framework δημιουργημένο από το μηδέν για τις ανάγκες του CMS

    Διαθέτει multilingual system που δεν θα το βρεις στα βιβλία

    Διαθέτει SEF URLs system που επίσης είναι καινοτόμο

Βλέπεις προτιμώ να μιλώ με έργα παρά με θεωρίες by the book

ΥΓ
pimpogio = θεωρία του κερατά αλλά από έργο τίποτα!

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από geomagas » 31 Ιούλ 2013 00:05

korgr έγραψε:Σ' ευχαριστώ που μου επιβεβαιώνεις πως είσαι και εσύ "pimpogio"
Άδικα τρολάρεις. Δεν σου επιβεβαίωσα τίποτα. Αν δεν το κατάλαβες, απλά συμφώνησα με την απάντηση κάποιου στην πομπώδη επίδειξη ημιμάθειας κάποιου άλλου. Εσύ με τη σειρά σου, μάλλον δείχνεις ότι έχεις καταλάβει ανάποδα το παραμύθι της αλεπούς με την κομμένη ουρά. Οι αδυναμίες μας είναι μειονεκτήματα, όχι λόγοι να κομπάζουμε...
korgr έγραψε:
geomagas έγραψε: Και τέλος, πες μου κάτι πραγματικά innovative, που δεν στηρίχτηκε σε "by the book" κανόνες προκειμένου να λειτουργήσει.
Αυτό :D
Καλά, ας μη σταθώ στο γεγονός ότι ευλογείς τα γένια σου... :roll: Να σταθώ στο γεγονός ότι το θεωρείς αυταπόδεικτο ότι κάτι που έφτιαξες είναι πρωτότυπο;;;
Ελπίζω τουλάχιστον να σταμάτησες να αποθηκεύεις ονόματα πινάκων και πεδίων (metadata) σε δεδομένα πίνακα (data), όχι για τίποτε άλλο, αλλά γιατί δεν έχεις ιδέα πόσοι άσχετοι, ημιμαθείς και μπακάληδες το κάνουν! Άρα, innovation: 0.
korgr έγραψε: Και επειδή πιθανά να βιαστείς να πεις "άλλο ένα CMS"
Μπα... Για να το πω αυτό, θα πρέπει πρώτα να είναι CMS, πράγμα με το οποίο δεν πρόκειται να ασχοληθώ...
korgr έγραψε:, να σε ενημερώσω πως:
  • Στηρίζεται σε ένα php framework δημιουργημένο από το μηδέν για τις ανάγκες του CMS
Δηλαδή έφτιαξες framework για τις ανάγκες δημιουργίας CMS. Σαν να λέμε, φτιάχνω αυτοκινητοβιομηχανία με γνώμονα τις προδιαγραφές ενός τιμονιού... Μμμμμμμμ! Innovative!
korgr έγραψε: Διαθέτει multilingual system που δεν θα το βρεις στα βιβλία
Ξέρεις πόσες.... (τέλος πάντων) δεν θα βρω στα βιβλία;;; Άπειρες!
korgr έγραψε: Διαθέτει SEF URLs system που επίσης είναι καινοτόμο
Οκ... Αν το λες εσύ....
korgr έγραψε:[/list]
Βλέπεις προτιμώ να μιλώ με έργα παρά με θεωρίες by the book
ΥΓ
pimpogio = θεωρία του κερατά αλλά από έργο τίποτα!
Δεν το ήξερα ότι εδώ είναι το μέρος που μετράμε τα έργα μας...

Δεν έχει κανείς υποχρέωση να σου αποδείξει τίποτα. Τα έργα καθενός είναι δικά του. Φαίνεται ότι μόνο εσύ προσπαθείς να αποδείξεις ότι κάτι έχεις καταφέρει, ακόμα και χωρίς αυτά τα... πώς τα λένε μωρέ... πανεπιστήμια; σχολές;;; Πράγματι, δίκιο έχεις, απορώ κι εγώ γιατί να υπάρχουν! Δεν τα κλείνουμε, να τα κάνουμε σουβλατζίδικα, να τρώμε και σοφιστικέ σουβλάκια;;;

Τον ασκιανό σου να τον μετράς μεσημέρι.

Αυτά και τέλος.

edit: Τι είναι αυτές οι εκφράσεις, framework, CMS, SEF URLs System; Γιατί "κολλάς σε όρους"; Αυτά είναι πασέ, μπανάλ, άσε που μπορεί (Θεός φυλάξοι) να τα αναφέρει και κανένα βιβλίο από κανένα Πανεπιστήμιο... Πες τα αλλιώς, πχ krowemarf, είναι πιο evitavonni!

Άβαταρ μέλους
korgr
Honorary Member
Δημοσιεύσεις: 5067
Εγγραφή: 07 Οκτ 2008 18:30
Τοποθεσία: Corinth
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από korgr » 31 Ιούλ 2013 06:58

Άλλο ένα παραλήρημα ...θεωρίας.
Σε αφήνω θαμμένο μέσα στις προσβολές σου και πάω να συνεχίσω το υπαρκτό μου έργο :P

ΥΓ. Φυσικά και ευλογώ τα γένια μου αφού ξέρω πολύ καλά τι έχω καταφέρει!
Εσύ θα έχεις άπειρες ευκαιρίες με αφορμή τις τεχνικές απορίες που δημοσιεύονται εδώ μέσα, να ευλογείς και τα δικά σου θεωρητικά γένια!

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από Khronos » 31 Ιούλ 2013 09:51

geomagas έγραψε:
Khronos έγραψε:@Lykos22
geomagas έγραψε:Πρέπει να αποφασίσεις τι θεωρείς attributes, για το classification των προϊόντων που έχεις αποφασίσει, και να τα υλοποιήσεις σαν πεδία σε πίνακες με σχέσεις IS-A, όπως είπα και σε αυτό το topic. Μετά, αφήνεις τα features στον πίνακα συσχέτισης που έχεις ήδη φτιάξει.
Δεν υπάρχει "πρέπει",
Κι όμως υπάρχει. Πάντα υπάρχει ένα "πρέπει"...
Khronos έγραψε:υπάρχει τι "ταιριάζει" σε κάθε περίπτωση.
Αυτό λέω κι εγώ. Όταν λοιπόν κάποιος αποφασίσει τι θέλει να κάνει, μοντελοποιεί την εφαρμογή του. Επειδή η μοντελοποίηση είναι στάνταρντ διαδικασία, για να ισχυριστεί κάποιος ότι την ακολουθεί, θα πρέπει να ακολουθήσει συγκεκριμένα βήματα (αυτά που ορίζει η τυποποιημένη διαδικασία). Αλλιώς, ας ισχυριστεί ότι ακολουθεί το δικό του super-duper εφεύρημα, fine by me.
Είδες που πάντα, τελικά, "πρέπει";
Khronos έγραψε:Αν θέλεις να φτιάξεις μια πλατφόρμα eshop που θα τη χρησιμοποιείς σε κάθε περίπτωση, πήγαινε με τον τρόπο που έχεις ηδη ξεκινήσει (eav).
Αν θέλεις, μπορείς να το τεκμηριώσεις αυτό;
Khronos έγραψε:....που είπε και ο geomags (class table inheritance)
Ο geomagas είπε σχέσεις IS-A, όπως του το έμαθαν οι δασκάλοι του, που ήταν σοφότεροι από αυτόν. Η έκφραση "class table inheritance" ανήκει σε κάποιον που θέλει να πουλήσει βιβλία, και ακροβατεί σε γλωσσοπλασίες για να προσποιηθεί ότι ανακάλυψε μία νέα πρωτοποριακή μέθοδο. Μην ψαρώνετε....
Εγώ μιλάω με τους όρους που ανέφερε το άρθρο με το οποίο ξεκίνησα το post.
Οπότε πες σε αυτόν που το έγραψε να μην ψαρώνει.
Τώρα αν έχεις κάτι να πεις που θα βοηθήσει τον Lykos22 και όποιον άλλον έχει αντίστοιχο πρόβλημα πολύ ευχαρίστως να το ακούσουμε...

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από geomagas » 31 Ιούλ 2013 11:56

Khronos έγραψε: Οπότε πες σε αυτόν που το έγραψε να μην ψαρώνει.
Δεν απευθυνόταν αποκλειστικά σε σένα... δεν ήθελα να σε προσβάλω.
Khronos έγραψε:Τώρα αν έχεις κάτι να πεις που θα βοηθήσει τον Lykos22 και όποιον άλλον έχει αντίστοιχο πρόβλημα πολύ ευχαρίστως να το ακούσουμε...
Μα νομίζω ήδη είπα τη γνώμη μου.

Άβαταρ μέλους
Khronos
Δημοσιεύσεις: 754
Εγγραφή: 11 Δεκ 2006 14:43
Τοποθεσία: Ηράκλειο

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από Khronos » 31 Ιούλ 2013 12:28

No problem! :)

Άβαταρ μέλους
Lykos22
Δημοσιεύσεις: 89
Εγγραφή: 29 Μαρ 2011 16:28
Τοποθεσία: UK

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από Lykos22 » 31 Ιούλ 2013 13:41

geomagas έγραψε:Αν κατάλαβα καλά, η ερώτησή σου αφορά τη ΒΔ και όχι το interface.
Παρ' όλα αυτά, το θέμα σου σηκώνει πολλή συζήτηση, γι αυτό θα αναφερθώ επιγραμματικά.
Θα πρέπει να ξεχωρίσεις λίγο τις έννοιες. Άλλο feature και άλλο attribute. Πρέπει να αποφασίσεις τι θεωρείς attributes, για το classification των προϊόντων που έχεις αποφασίσει, και να τα υλοποιήσεις σαν πεδία σε πίνακες με σχέσεις IS-A, όπως είπα και σε αυτό το topic. Μετά, αφήνεις τα features στον πίνακα συσχέτισης που έχεις ήδη φτιάξει.

Και μερικές γενικότερες επισημάνσεις:
- Το να απεικονίσεις τους πίνακες 1:1 με μοντέλα του CI νομίζω ότι είναι πολύ περιοριστική αντιμετώπιση, και ίσως το συναντήσεις στην πορεία.
- Σου λείπουν τα foreign keys! Μην τα παραλείπεις, κάποτε θα σου "σώσουν τη ζωή".
Η ερώτησή μου αφορά σίγουρα και τη ΒΔ (άλλωστε από εκεί ξεκινάς πάντα, αν δεν έχεις οργανώσει αυτή σωστά δεν κάνεις τίποτα) αλλά θα ήθελα να μάθω μερικές συμβουλές για το interface, δεν θα έλεγα όχι.

Όταν λες πως θα πρέπει να ξεχωρίσω τις έννοιες τι ακριβώς εννοείς?? όπως είπα και πιο πριν έχω σαν οδηγό το plaisio.gr, σε οποιδήποτε προϊόν και αν δεις, είτε έιναι υπολογιστής, είτε φωτ. μηχανή το δείχνει νομίζω ξεκάθαρα. Κάτω από τις εικόνες έχει 3 tabs, ΠΕΡΙΓΡΑΦΗ, ΧΑΡΑΚΤΗΡΙΣΤΙΚΑ (τα features μου) και ΑΞΙΟΛΟΓΗΣΕΙΣ.

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

πια είναι η καλύτερη σχεδίαση για eshop

Δημοσίευση από geomagas » 31 Ιούλ 2013 15:07

Lykos22 έγραψε:...άλλωστε από εκεί ξεκινάς πάντα, αν δεν έχεις οργανώσει αυτή σωστά δεν κάνεις τίποτα...
Αυτό ξαναπές το! Βέβαια, εγώ θα σου μιλήσω για τη φάση της ανάλυσης, που προηγείται της υλοποίησης της βάσης.
Lykos22 έγραψε:Όταν λες πως θα πρέπει να ξεχωρίσω τις έννοιες τι ακριβώς εννοείς??
Να σου δώσω ένα παράδειγμα.

attributes:
Έχεις μία γενική κλάση product με κατηγορήματα brand,description. Αυτά είναι κατηγορήματα που πάντα θα ισχύουν για όλα τα προϊόντα.
Σε δεύτερο επίπεδο, τα χωρίζουμε, έστω, σε computer, fridge, oven (το computer περιλαμβάνει οτιδήποτε έχει cpu, ram και OS).
Προφανώς, "A computer is-a product", άρα κληρονομεί τα κατηγορήματα του product, αλλά έχει και τα δικά του, πχ cpu, ram, os.
Ομοίως, "An oven is-a product", αλλά έχει και πχ has_grill. Και "A fridge is-a product" αλλά έχει και πχ num_doors.
Περαιτέρω, το computer χωρίζεται σε desktop και portable, όπου τα portable έχουν μπαταρία, και χωρίζονται σε laptop, tablet, phone κ.ο.κ.
Παρατηρείς ότι δημιουργείται μία "δενδρική" δομή από οντότητες, των οποίων τα κατηγορήματα είναι υποχρεωτικά, και αυστηρά καθορισμένα.

features:
Έστω τώρα ότι υπάρχουν χαρακτηριστικά που εμφανίζονται σε διάφορα σημεία της δομής, αυθαίρετα και ανεξάρτητα από την ταξινόμηση.
Έστω ότι, για κάποια προϊόντα δίνεται εγγύηση, αλλά για κάποια όχι. Και εδώ μιλάμε για συγκεκριμένα στιγμιότυπα, και όχι για κλάσεις/οντότητες.
Εδώ θα χρειαστείς μία συσχέτηση του τύπου (product_id,feature,value) όπου για την περίπτωση της εγγύησης ενός προϊόντος θα έχεις μία πλειάδα πχ (16538,'warranty','3 years').

Τα είπα λίγο συνοπτικά, αν θέλεις κάπου περαιτέρω εξήγηση, πες το.

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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