<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>ASP.NET WebForms</title><link>https://www.dotnetzone.gr:443/cs/forums/13/ShowForum.aspx</link><description>Θέματα για web εφαρμογές, σε ASP.NET WebForms</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57091.aspx</link><pubDate>Fri, 12 Feb 2010 05:26:07 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57091</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57091.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57091</wfw:commentRss><description>&lt;P&gt;Επειδή ξεφύγαμε και δεν έχει νόημα, το κάνω Lock. Bottom line είναι, ότι τα constraints για το&amp;nbsp;integrity των δεδομένων το επιτυχγάνεις στην βάση, κι όχι στην εφαρμογή.&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57090.aspx</link><pubDate>Fri, 12 Feb 2010 04:40:13 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57090</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57090.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57090</wfw:commentRss><description>1)&amp;nbsp;εκφράζομαι&amp;nbsp;όπως&amp;nbsp;με&amp;nbsp;αναγκάζουν&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-12.gif" alt="Angry" /&gt;&amp;nbsp;δικαίωμά&amp;nbsp;μου&amp;nbsp;είναι.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;αλλά&amp;nbsp;ας το&amp;nbsp;ξεχάσουμε&amp;nbsp;αυτο....&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-4.gif" alt="Stick out tongue" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;2)δεν&amp;nbsp;διαφωνώ&amp;nbsp;σε αυτα που λες σε&amp;nbsp;ιδικές&amp;nbsp;γραμμές,&amp;nbsp;αλλά&amp;nbsp;σκέψου&amp;nbsp;λίγο&amp;nbsp;κι&amp;nbsp;εσύ, στο πραδειγμα που εθεσε ο φιλος αρχη αρχη,&lt;/div&gt;&lt;div&gt;μεσα σε μια κατηγορια εχεις 300προιοντα! μεχρι εδω καλα?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;και λες&amp;nbsp;θέλω&amp;nbsp;να&amp;nbsp;σβήσω&amp;nbsp;την&amp;nbsp;κατηγορία&amp;nbsp;μόνο!&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;και&amp;nbsp;ερωτώ&amp;nbsp;λοιπόν, &lt;i&gt;για να&amp;nbsp;μάθω&amp;nbsp;κι&amp;nbsp;εγώ&amp;nbsp;που δεν&amp;nbsp;ξέρω&lt;/i&gt;, αν&amp;nbsp;έχεις&amp;nbsp;σχεσεις μεσα στην βαση&amp;nbsp;προϊόντα&amp;nbsp;με κατηγοριες, και θες να σβησεις Μονο την κατηγορια χωρις να φας σφαλμα, χωρις να αφήσεις "ορφανες" εγγραφες, αλλα όντως να τις&amp;nbsp;αφήσεις&amp;nbsp;άθικτες,&amp;nbsp;τι κανεις? γιατι παραδειγμα εγω θελω να εχω ολα τα προιοντα χημα και ισως την επομενη τα βαλω σε αλλη ομαδα, χρηστης ειμαι οτι θελω ζηταω.&lt;/div&gt;&lt;div&gt;δεν τα κατεβαζω απο το κεφαλι μου, τα εχω ακουσει και εχω φρικαρει πολλες φορες! και οταν ειναι να πουλησεις και να κανεις χαρουμενο τον πελατη, ΧΤΕΣ οχι μεθαυριο με την perfect&amp;nbsp;μέθοδο(που γιατι οχι μπορει να μην ξερεις και δεν προλαβαινεις να μαθεις), οταν λοιπον πρεπει να κανεις αυτο που θελει ο αλλος, αμεσα και αποτελεσματικα με "οπιονδηποτε" τροπο αρκει να δουλευει,&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;τοτε βρε john&amp;nbsp;πως το κουμανταρεις αυτο αν εχεις ολες τισ σχεσεις στην βαση?&lt;/div&gt;&lt;div&gt;μπορεις να "σπασεις" για λιγο την σχεση να κανεις αυτο το μη "λογικο" ετοιμα, πως το κανεις?&lt;/div&gt;&lt;div&gt;και γιατι το να κανεις χρηση τα&amp;nbsp;&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;"&gt;DataRelations το καθηστα "πατεντα"-λυση μη επιτρεπτει?μπορει κατι οντος να παει στραβα? αν ναι τι? αν οχι απλα γιατι το book το λεει τοτε συγνωμη, θα διαφωνησω.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;και&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;3)δεν ειναι βολικο το Update chema, γιατι εχεις 1 ακομα πραγμα να&amp;nbsp;αγχώνεσαι.(προσωπική&amp;nbsp;αποψη ξαναλεω).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;tnx&lt;/div&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57089.aspx</link><pubDate>Fri, 12 Feb 2010 04:08:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57089</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57089.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57089</wfw:commentRss><description>&lt;P&gt;Κοιτα να δεις , ο τρόπος που εκφράζεσαι είναι ακρως προσβλητικός και επιθετικός.&lt;BR&gt;Σε πληροφορώ οτι τα ελληνικά μας είναι μια χαρά, ερμηνεύουμε αυτά που&amp;nbsp;έγραψες και τα περισσότερα που έγγραψες εδώ είναι δυστυχώς λάθος. &lt;/P&gt;
&lt;P&gt;Φρόντισε να καταλάβεις πρώτα τι γράφουν οι άλλοι πρίν ξεκινήσεις να γράφεις.&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Τα DataRelations στην εφαρμογή υπάρχουν ως επέκταση των σχέσεων της βάσης δεδομένων, έτσι ώστε να μην επιτρέπεται σε επίπεδο εφαρμογής να &lt;FONT color=#ff0000&gt;παραβιάζονται οι κανόνες της βάσης δλδ τα Relations που έχεις ήδη, πρίν φτάσεις στην βάση δεδομένων&lt;/FONT&gt;.&lt;BR&gt;Τί γίνετε όμως αν κατα λάθος σβηστεί μία εγγραφή που είναι Foreign Key σε άλλο πίνακα; &lt;BR&gt;Χωρίς Relation&amp;nbsp;παραμένει μία εγγραφή που περιέχει ένα πεδίο με κωδικό που πλέον δεν υπάρχει δλδ. &lt;STRONG&gt;orphaned&lt;/STRONG&gt; child record.&lt;BR&gt;Δεν έχει σημασία αν έχεις Access, MS SQL Server, Oracle, MySql, PostgresSql. Πρέπει πάντα να έχεις RELATIONS ΣΤΗΝ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ. &lt;BR&gt;ΦΥΣΙΚΑ ΘΑ ΕΧΕΙΣ CHANGE SCRIPTS ΠΟΥ ΘΑ ΣΥΧΡΟΝΙΖΟΥΝ ΤΟ SCHEMA ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ, ΜΕΣΑ ΑΠΟ ΤΗΝ ΕΦΑΡΜΟΓΗ. &lt;BR&gt;Αν διάβαζες και λίγο MSDN θα έβλεπες ότι υπάρχουν και έτοιμες λύσεις από τα προϊόντα που ήδη κάνεις χρήση αλλά και 3d Party.&lt;/P&gt;
&lt;P&gt;Δεν υπάρχουν σωστές ή λάθος Λύσεις, όμως όταν δίνεις λύσεις με &lt;STRONG&gt;&lt;FONT style="BACKGROUND-COLOR:#ff0000;"&gt;Πατέντες,&lt;/FONT&gt;&lt;/STRONG&gt; γνωρίζεις εξαρχής ότι η λύση σου δεν είναι η ποίο βέλτιστη (Το δηλώνεις με την λέξη Πατέντα).&lt;/P&gt;
&lt;P&gt;Το λιθαράκι σου αν είναι να δίνετε με Πατέντα, να το κρατήσεις για εσένα, όπως σου γράφω παραπάνω κάνει κακό σε αύτους που θέλουν να μάθουν χωρίς πατέντες με τον τρόπο που προτείνουν οι καλύτεροι.&lt;BR&gt;Αν έχεις διαφορετική άποψη, φρόντισε να καταλάβεις τι σου λένε, προσπάθησε να συγκρίνεις την υλοποίση και τις προτάσεις των άλλων.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Σε συμβουλεύω να διαβάσεις και εσύ λίγο MSDN θα εκπλαγείς τι μπορείς να μάθεις.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57087.aspx</link><pubDate>Fri, 12 Feb 2010 03:10:56 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57087</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57087.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57087</wfw:commentRss><description>καλα τι να πω δεν ξερεται Ελληνικα, δεν θελεται να καταλαβαιτε?&lt;div&gt;δεν θα&amp;nbsp;συγχυστώ&amp;nbsp;έρχεται&amp;nbsp;τρελη αδεια, δεν ξερω αν φταει το νεφος εκει κατω αλλά οταν καποιος δεν απαντα συγκερημενα και απαντα&amp;nbsp;προσωπικά&amp;nbsp;ειναι&amp;nbsp;τουλάχιστον&amp;nbsp;απαράδεκτο.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;εγω καταλαβα τι λεει ο Παναγιωτης Κ (και σεβαστο), για τον&amp;nbsp;άλλους&amp;nbsp;συνηγόρους&amp;nbsp;οταν θα σας&amp;nbsp;ρωτήσω, μπορειτε να μου πειτε με ποιον ειστε και ποιον οχι,&amp;nbsp;αδιαφορώ.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;εγω λοιπον καταλαβα παρα πολυ καλα τι ειπε ο π.κ &amp;nbsp;οπως και το δικαιολογω οτι αυτα τα ειπε γιατι &lt;b&gt;δεν ερμηνευσε σωστα&lt;/b&gt; τα γραπτα μου οπως θα ηθελα να τα πω, με αποτελεσμα να γραψει αυτα.&lt;/div&gt;&lt;div&gt;και μετα απανταω λεγοντας ακριβως τι ενοουσα αλλα εξακολουθουν καποιοι να μην θελουν να μελετησουν, απλα κοιτανε λεξεις ετσι πεταχτα και μπαινουν στην συζητηση να το&amp;nbsp;παίξουν&amp;nbsp;συνήγοροι!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;δεν γουσταρω να μπω στο τρυπακι οπως προ μηνων και αυτη τη φορα για παρεξηγηση.&lt;/div&gt;&lt;div&gt;καθηστε και κουβεντιαστε μεταξυ σας, εγω ειπα αυτο που ηθελα να πω στο ανθρωπο που ρωτησε κατι, αμα θελει το ακολουθει αμα δε θελει οχι.&lt;/div&gt;&lt;div&gt;οσοι το καταλαβαν το καταλαβαν, οσοι δεν το καταλαβαν να μην το καταλαβουν ποτε.&lt;/div&gt;&lt;div&gt;δεν κανω ποτε οτι δεν θα ηθελα να μου κανουν, στην προκειμενη περιπτωση να 0νισω τα λεγομενα καποιου βαση τις δικες μου ιδεες.&lt;/div&gt;&lt;div&gt;δεν εχω να αποδειξω τιποτα και σε κανεναν, είτε ειναι πλαιος ήτε ειναι ψαρας. ο καθενας κανει οτι καλητερο μπορει, εγω τοσο μπορω τοσο κανω μικρο η μεγαλο το ληθαρακι μου αυτο εχω αυτο θα δωσω, αν δεν σας αρεσει καποιους τοτε εσεις μην συμετεχεται,&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;ειλικρινά&amp;nbsp;το&amp;nbsp;κώλυμα&amp;nbsp;που εχουν 2-3 ατομα εδω περα να νομιζουν οτι πρεπει ολοι να&amp;nbsp;είναι&amp;nbsp;φωστήρες&amp;nbsp;και να κανουν copy-paste το msdn δεν το&amp;nbsp;καταλαβαίνω, εγω εμαθα να λυνω&amp;nbsp;προβλήματα&amp;nbsp;και με "πατέντες" κι ας μην ειναι στο msdn&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;και στην τελικη ειπα οτι αντι να κανεις τις σχεσεις μεσα στην βαση καντες απο τον κωδικα σου εναλλακτικα, που ειναι το λαθος Μην τρελαθουμε τελειως ρε παιδια! Ελεος! αμα ειναι "λαθος" τι διαολο το εχει το ado.net τοτε ως δυνατοτητα? ΑΑΑΑ Ασε ξερω, κι αυτοι "λάθος" ειναι!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;αντε και πολυ ασχοληθηκα.-&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57086.aspx</link><pubDate>Fri, 12 Feb 2010 02:48:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57086</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57086.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57086</wfw:commentRss><description>&lt;P&gt;John&amp;nbsp;θα συμφωνήσω και εγω με τον Παναγιώτη. &lt;BR&gt;Είμαι στην διάθεση σου να σου εξηγήσω τον λόγο που έχεις άδικο.&lt;/P&gt;
&lt;P&gt;Οι απαντήσεις που δίνονται στο φόρουμ είναι για να μαθαίνουμε όλοι, θέλει όμως λίγη προσοχή καθώς η λάθος πληροφόρηση που δίνουμε μπορεί να οδηγήσει νέους προγραμματιστές σε λάθος πρακτικές προγραμματισμού.&lt;BR&gt;Που σε βάθος χρόνου μπορούν να αποτελέσουν λόγο για να διεκοπεί η διάθεση προϊόντων λογισμικού. Το σίγουρο είναι ότι αυξάνουν τον χρόνο που χρειάζεται για συντήρηση και υποστήριξη.&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57085.aspx</link><pubDate>Fri, 12 Feb 2010 02:33:55 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57085</guid><dc:creator>Τάσκος Γιώργος</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57085.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57085</wfw:commentRss><description>Καλά που γράφουμε στα Ελληνικά και οι ξένοι Developers δεν μπορούν να δούν τι ακριβως συζητάμε...&lt;br&gt;&lt;br&gt;LOCK!&lt;br&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57084.aspx</link><pubDate>Fri, 12 Feb 2010 02:29:44 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57084</guid><dc:creator>Panagiotis Kefalidis</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57084.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57084</wfw:commentRss><description>&lt;P&gt;Δεν θα θέλω να απαντήσω γιατί ουσιαστικά τα ίδια με τον Παναγιώτη θα πω, αλλά καλό θα ήταν να δέχεσαι συμβουλές και παρατηρήσεις απο ανθρώπους που είναι&amp;nbsp;15 χρόνια στην πληροφορική και έχουν δει πολλά. Παγκοσμίως οι τεχνικές, αποδεδειγμένες, σωστές και σε βιβλία, και παντού, είναι αυτά που περιγράφει ο Παναγιώτης, κι όχι εσύ. Αν το βλέπεις σαν επίθεση, κακός, παρατήρηση είναι. &lt;/P&gt;
&lt;P&gt;Το παράδειγμα για πολλαπλές βάσεις είναι τουλάχιστον άστοχο, δεν ισχύει τίποτα απο όλα αυτά τα οποία γράφεις. Δεν είσαι ο μοναδικός άνθρωπος στο πλανήτη που γράφεις "επαγγελματικές" εφαρμογές. &lt;/P&gt;
&lt;P&gt;Κανείς δεν θέλει να σου την πει, ίσα ίσα να σε βοηθήσει θέλει να μην φας τα μούτρα σου. Αν δεν θέλεις βοήθεια μπορείς απλά να μην απαντάς ή να αποχωρήσεις.&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57082.aspx</link><pubDate>Fri, 12 Feb 2010 02:11:34 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57082</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57082.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57082</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Johnnyxp64:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;
&lt;div&gt;hi John&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/div&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;αυτο ειναι κατ εμε "προαιρετικο" και κατι που ερχεται σε 2η μοιρα,&amp;nbsp;προσωπικά&amp;nbsp;δεν μου&amp;nbsp;αρέσει&amp;nbsp;να κανω σχεσεις πανω στην βαση, τις κανω απο κοδικα, φυσικα μια τετοια σχεση θα τον διευκολήνει σε ερωτηματα ργοτερα και αμα παιξει με linq2sql αλλα, δεν ειναι απαραιτητο να την κανει στην βαση.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-43.gif" alt="Confused" /&gt;
&lt;div&gt;&lt;br&gt;&lt;/div&gt;
&lt;p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;/p&gt;
&lt;p&gt;Johnny, πραγματικά αυτή τη φορά με άφησες άφωνο . Πριν δώσεις συμβουλές για σχεδίαση βάσης θα πρέπει να μάθεις ΤΙ είναι τα Foreign Key Constraints και ΓΙΑΤΙ χρειάζονται. Όταν ο κώδικας σου θα σβήσει μερικές χιλιάδες εγγραφές κατά λάθος, θα καταλάβεις και γιατί είναι ΚΑΚΗ ιδέα να κάνεις τους ελέγχους μόνο στη βάση.&lt;/p&gt;
&lt;p&gt;Κάποιος λόγος υπάρχει που υπάρχουν αυτά τα πράγματα στη βάση. Δεν είμαστε όλοι παράξενοι που τα χρησιμοποιούμε τόσες δεκαετίες.&amp;nbsp;Αν δεν τον καταλαβαίνεις, φρόντισε να τον καταλάβεις πριν δώσεις επικίνδυνες συμβουλές.&lt;/p&gt;
&lt;p&gt;Και όσο για τους πίνακες, ένας πίνακας πρέπει να έχει ένα σκοπό. Ή θα περιλαμβάνει προϊόντα, ή θα περιλαμβάνει κατηγορίες. Το ανακάτωμα τους είναι ΚΑΚΗ σχεδίαση. Αν θυμάσαι τί είναι η 2η κανονική μορφή, είναι αυτή που λέει ότι ΔΕΝ ανακατώνουμε διαφορετικά πράγματα μέσα στον ίδιο πίνακα.&lt;/p&gt;
&lt;p&gt;Και τα Foreign Key Constraints και οι κανόνες κανονικοποίησης είναι πράγματα που μαθαίνει κανείς στο πρώτο-πρώτο μάθημα για βάσεις δεδομένων. Δεν μπορεί κάποιος να είναι επαγγελματίας προγραμματιστής και να μην τα ξέρει. &lt;/p&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Παναγιωτη προσεχε κι εσυ τι γραφω και μετα&amp;nbsp;δίκασε.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;δεν ειπα να μην εχει σχεσεις&lt;/b&gt; ειπα οτι αυτο και (προσωπικα) μου&amp;nbsp;αρέσει&amp;nbsp;να το&amp;nbsp;κάνω&amp;nbsp;στον&amp;nbsp;κώδικα&amp;nbsp;και οχι στην βαση!&amp;nbsp;&lt;/div&gt;&lt;div&gt;example:&lt;/div&gt;&lt;div&gt;&lt;table border="0" cellpadding="0" cellspacing="0" width="100%" style="background-color:#f2f2f2;border:solid 1px #e5e5e5;"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Imports&lt;/span&gt; System.Data.SqlClient
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Class&lt;/span&gt; Form1
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Private&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/span&gt; Button1_Click(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ByVal&lt;/span&gt; sender &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; System.&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Object&lt;/span&gt;, &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;ByVal&lt;/span&gt; e &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; System.EventArgs) &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Handles&lt;/span&gt; Button1.Click
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; connetionString &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; connection &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; SqlConnection
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;command&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; SqlCommand
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; adapter &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlDataAdapter
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; ds &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; DataSet
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; firstSql &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; secondSql &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;
		connetionString &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password"&lt;/span&gt;
		firstSql &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Your First SQL Statement Here"&lt;/span&gt;
		secondSql &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Your Second SQL Statement Here"&lt;/span&gt;
        connection &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlConnection(connetionString)
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Try&lt;/span&gt;
            connection.Open()
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;command&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlCommand(firstSql, connection)
            adapter.SelectCommand &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;command&lt;/span&gt;
            adapter.Fill(ds, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Table1"&lt;/span&gt;)

            adapter.SelectCommand.CommandText &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; secondSql
            adapter.Fill(ds, &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Table2"&lt;/span&gt;)

            adapter.Dispose()
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;command&lt;/span&gt;.Dispose()
            connection.Close()
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'creating data relations&lt;/span&gt;
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; relation &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; DataRelation
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; table1Column &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; DataColumn
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; table2Column &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; DataColumn
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'retrieve column&lt;/span&gt;
            table1Column &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; ds.Tables(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Table1"&lt;/span&gt;).Columns(0)
            table2Column &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; ds.Tables(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"table2"&lt;/span&gt;).Columns(0)
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'relating tables&lt;/span&gt;
&lt;/span&gt;&lt;span style="color:black;background-color:transparent;font-family:'Courier New';font-size:11px;"&gt;&lt;b&gt;            relation &lt;/b&gt;&lt;span style="color:red;background-color:transparent;font-family:'Courier New';font-size:11px;"&gt;&lt;b&gt;=&lt;/b&gt;&lt;/span&gt;&lt;b&gt; &lt;/b&gt;&lt;span style="color:blue;background-color:transparent;font-family:'Courier New';font-size:11px;"&gt;&lt;b&gt;New&lt;/b&gt;&lt;/span&gt;&lt;b&gt; DataRelation(&lt;/b&gt;&lt;span style="font-family:'Courier New';font-size:11px;"&gt;&lt;b&gt;"relation"&lt;/b&gt;&lt;/span&gt;&lt;b&gt;, table1Column, table2Column)&lt;/b&gt;&lt;/span&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'assign relation to dataset&lt;/span&gt;
            ds.Relations.&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Add&lt;/span&gt;(relation)

            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;MsgBox&lt;/span&gt;(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Data relation completed"&lt;/span&gt;)
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Catch&lt;/span&gt; ex &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; Exception
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;MsgBox&lt;/span&gt;(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"Can not open connection ! "&lt;/span&gt;)
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Try&lt;/span&gt;
    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/span&gt;
&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Class&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;και αν θες να ξερεις πολυ επαγγελματιες πραγματικοι δουλεουν ετσι γιατι αμα εχεις και επαγγελματικη εφαρμογη παιζει και σε mssql / access kai se mysql kai se ce kai se oracle και οπου θες χωρις να χρειαζεται να τρελαινεσαι πως θα μεταφερεις τους πινακες και τις σχεσης τους απο την μια βαση στην αλλη!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Φυσικα και σε προστατευουν σε λαθος κινησεις φυσικα και ειναι καλο να υπαρχουν αλλα ξαναματαλεω δεν ειναι απαραιτητα να της κανεις &lt;b&gt;μεσα&lt;/b&gt; στην βαση! αντιθετα σε δεσμευει!&lt;/div&gt;&lt;div&gt;τι θα κανεις σε περιπτωση αλλαγης-προβληματος θα εγκαθηστας στον πελατη που εχει mssql το&amp;nbsp;SQL Server Management Studio και θα καθεσαι να κανει με το χερι τις αλλαγες - διορθωσης στην βαση? ή θα αγχωνεσαι να κανεις scriptakia και θα τα τρεχεις σε πελατες με διαφορετικες εκδοσης - βασης...... &amp;nbsp;καληνυχτα!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;αμα ολα αυτα ομως τα εχεις στον κωδικα σου απλα του λες κατεβασε το update και εκει μεσα εχεις κανει το νεο relationship και ξεμπερδεψες!&lt;/div&gt;&lt;div&gt;αφηστε τα θεωριτκα και τα βιλβια στην ακρη το XP δεν το αποκτας Μονο με τα βιβλια, αλλο απο τα κουλα που θα συναντησεις καθως φτιαχνεις εφαρμογες.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;αν σου αρεσει να το κανεις ετσι επειδη ετσι το διαβασες η στο "ειπανε στο πρωτο μαθημα", fine by me,&amp;nbsp;άσε&amp;nbsp;τους&amp;nbsp;άλλοuς&amp;nbsp;να εχουν τους δικους εναλακτικους τροπους, και μην κανεις attack αμα δεν καταλαβες σωστα τα λεγομενα μου.&amp;nbsp;&lt;/div&gt;&lt;div&gt;Στην τελικη εδω απανταει ο&amp;nbsp;καθένας&amp;nbsp;στην&amp;nbsp;ερώτηση&amp;nbsp;δεν&amp;nbsp;στήσαμε&amp;nbsp;κουβεντούλα για να κρινόμαστε μεταξύ&amp;nbsp;μας (κακοί&amp;nbsp;επηρεασμοί&amp;nbsp;μάλλον). για&amp;nbsp;αυτά υπάρχει&amp;nbsp;άλλο&amp;nbsp;section το cafe ή p.m.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;.-&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;p.s from Gianni &amp;amp; tha symfoniso&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;font-size:12px;"&gt;&lt;i&gt;"Θα μπορούσα να γράψω και την υλοποίηση σε WebForms, άλλα πιστευώ, πως πρέπει κάποιος να κάνει και μία προσπάθεια μόνος του.&amp;nbsp;&lt;br&gt;Ειδικά όταν αυτός που κάνει την ερώτηση δεν συμμετέχει στην συζήτηση."&lt;/i&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#008000" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:12px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#008000" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:12px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" color="#008000" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:12px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57081.aspx</link><pubDate>Fri, 12 Feb 2010 01:45:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57081</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57081.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57081</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Johnnyxp64:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt; 
&lt;DIV&gt;hi John&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/DIV&gt;
&lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;αυτο ειναι κατ εμε "προαιρετικο" και κατι που ερχεται σε 2η μοιρα,&amp;nbsp;προσωπικά&amp;nbsp;δεν μου&amp;nbsp;αρέσει&amp;nbsp;να κανω σχεσεις πανω στην βαση, τις κανω απο κοδικα, φυσικα μια τετοια σχεση θα τον διευκολήνει σε ερωτηματα ργοτερα και αμα παιξει με linq2sql αλλα, δεν ειναι απαραιτητο να την κανει στην βαση.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-43.gif" alt="Confused" /&gt; 
&lt;DIV&gt;&lt;BR&gt;&lt;/DIV&gt;
&lt;P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-3.gif" alt="Surprise" /&gt;&lt;/P&gt;
&lt;P&gt;Johnny, πραγματικά αυτή τη φορά με άφησες άφωνο . Πριν δώσεις συμβουλές για σχεδίαση βάσης θα πρέπει να μάθεις ΤΙ είναι τα Foreign Key Constraints και ΓΙΑΤΙ χρειάζονται. Όταν ο κώδικας σου θα σβήσει μερικές χιλιάδες εγγραφές κατά λάθος, θα καταλάβεις και γιατί είναι ΚΑΚΗ ιδέα να κάνεις τους ελέγχους μόνο στον κώδικα.&lt;/P&gt;
&lt;P&gt;Κάποιος λόγος υπάρχει που υπάρχουν αυτά τα πράγματα στη βάση. Δεν είμαστε όλοι παράξενοι που τα χρησιμοποιούμε τόσες δεκαετίες.&amp;nbsp;Αν δεν τον καταλαβαίνεις, φρόντισε να τον καταλάβεις πριν δώσεις επικίνδυνες συμβουλές.&lt;/P&gt;
&lt;P&gt;Και όσο για τους πίνακες, ένας πίνακας πρέπει να έχει ένα σκοπό. Ή θα περιλαμβάνει προϊόντα, ή θα περιλαμβάνει κατηγορίες. Το ανακάτωμα τους είναι ΚΑΚΗ σχεδίαση. Αν θυμάσαι τί είναι η 2η κανονική μορφή, είναι αυτή που λέει ότι ΔΕΝ ανακατώνουμε διαφορετικά πράγματα μέσα στον ίδιο πίνακα.&lt;/P&gt;
&lt;P&gt;Και τα Foreign Key Constraints και οι κανόνες κανονικοποίησης είναι πράγματα που μαθαίνει κανείς στο πρώτο-πρώτο μάθημα για βάσεις δεδομένων. Δεν μπορεί κάποιος να είναι επαγγελματίας προγραμματιστής και να μην τα ξέρει. &lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57080.aspx</link><pubDate>Fri, 12 Feb 2010 01:30:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57080</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57080.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57080</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Μπλουγουράς Γιάννης:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;
&lt;P&gt;Γεία σου John. Για τα προϊόντα πρέπει να έχεις ενα πεδίο με Foreign Key στα Products. &lt;/P&gt;
&lt;P&gt;Category&lt;BR&gt;----------&lt;BR&gt;ParentId&lt;BR&gt;ProductId &amp;lt; αλλίως δεν έχεις constraint.&lt;/P&gt;
&lt;P&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;Το παραπάνω το έδειξα μόνο για τα Contraints, δεν είναι ο σωστός τρόπος, διότι επιτρέπει μόνο 1 προϊόν ανα κατηγορία.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;Στην&amp;nbsp;ποιο ανεπτυγμένη σχεδίαση έχουμε:&lt;/FONT&gt;&lt;BR&gt;Category&lt;BR&gt;Id&lt;BR&gt;Name&lt;BR&gt;HasProductsNotCategories&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;Product&lt;BR&gt;Id&lt;BR&gt;Name&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;ProductInCategory&lt;BR&gt;CategoryId&lt;BR&gt;ProductId&lt;BR&gt;&lt;BR&gt;SubCategoryInCategory&lt;BR&gt;ParentCategoryId&lt;BR&gt;SubCategoryId&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;Και στην ποιό απλή μορφή:&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;&lt;FONT color=#000000&gt;Category&lt;BR&gt;Id&lt;BR&gt;ParentId&lt;BR&gt;Name&lt;BR&gt;HasProductsNotCategories&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#000000&gt;Product&lt;BR&gt;Id&lt;BR&gt;Name&lt;BR&gt;CategoryId&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;Οταν έχουμε &lt;/FONT&gt;&lt;FONT color=#008000&gt;Category.HasProductsNotCategories=1 τότε επιστρέφουμε το userControl με τα προϊόντα.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#008000&gt;Θα μπορούσα να γράψω και την υλοποίηση σε WebForms, άλλα πιστευώ, πως πρέπει κάποιος να κάνει και μία προσπάθεια μόνος του. &lt;BR&gt;Ειδικά όταν αυτός που κάνει την ερώτηση δεν συμμετέχει στην συζήτηση.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57060.aspx</link><pubDate>Thu, 11 Feb 2010 01:58:46 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57060</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57060.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57060</wfw:commentRss><description>&lt;div&gt;hi John&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-2.gif" alt="Big Smile" /&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;αυτο ειναι κατ εμε "προαιρετικο" και κατι που ερχεται σε 2η μοιρα,&amp;nbsp;προσωπικά&amp;nbsp;δεν μου&amp;nbsp;αρέσει&amp;nbsp;να κανω σχεσεις πανω στην βαση, τις κανω απο κοδικα, φυσικα μια τετοια σχεση θα τον διευκολήνει σε ερωτηματα ργοτερα και αμα παιξει με linq2sql αλλα, δεν ειναι απαραιτητο να την κανει στην βαση.&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-43.gif" alt="Confused" /&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;αυτο ειναι καθαρα στον τροπο που εχει μαθει κανεις να δουλευει, οπως ειπα καθαρα προσωπικα δεν μου&amp;nbsp;αρέσει&amp;nbsp;και η XPO σε&amp;nbsp;συνδυασμό&amp;nbsp;με Linq2SQL και programmable relationship (γενικα sτο ado.net) με&amp;nbsp;έχουν&amp;nbsp;απαλαξει απο το αγχος της βασης!&lt;img src="http://www.dotnetzone.gr/cs/emoticons/emotion-15.gif" alt="Geeked" /&gt; ασε που ετσι ειμαι ποιο portable!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;αλλα γενικα λεω ενα πινακα και οχι 2-3&amp;nbsp;&lt;/div&gt;&lt;div&gt;ενα πινακα για προιοντα και στον ιδιο θα ειναι και οι κατηγοριες!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57059.aspx</link><pubDate>Wed, 10 Feb 2010 23:55:17 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57059</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57059.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57059</wfw:commentRss><description>&lt;P&gt;Γεία σου John. Για τα προϊόντα πρέπει να έχεις ενα πεδίο με Foreign Key στα Products. &lt;/P&gt;
&lt;P&gt;Category&lt;BR&gt;----------&lt;BR&gt;ParentId&lt;BR&gt;ProductId &amp;lt; αλλίως δεν έχεις constraint.&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57058.aspx</link><pubDate>Wed, 10 Feb 2010 22:48:29 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57058</guid><dc:creator>Johnnyxp64</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57058.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57058</wfw:commentRss><description>μπορεις να τα εχεις ολα σε ενα πινακα και απλα να κανεις τα εξεις&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;1)φτιαξε πεδια ID-------ParentID---IsCategory&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;θα φτιαχνεις μεσα στον πινακα με τα ειδη και ενα ειδος - κατηγορια ομως και θα παιζεις με τα ID &amp;amp; ParentID οπως κανει και ενα Windows TreeList περιπου&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;στο παραδειγμα σου πανω&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;ΝΑΜΕ&lt;/b&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;b&gt;					&lt;/b&gt;&lt;/span&gt;&lt;b&gt;ID&lt;/b&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;b&gt;				&lt;/b&gt;&lt;/span&gt;&lt;b&gt;ParentID&lt;/b&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;b&gt;				&lt;/b&gt;&lt;/span&gt;&lt;b&gt;IsCategory&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;font-size:12px;"&gt;ΚΑτηγορία 1&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;001&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;					&lt;/span&gt;true&lt;br&gt;&amp;nbsp; Υποκατηγορία 1,1&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;			&lt;/span&gt;607&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;001&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;					&lt;/span&gt;true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;font-size:12px;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space:pre;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;&lt;u&gt;proion&lt;/u&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;u&gt;				&lt;/u&gt;&lt;/span&gt;006&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;001&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;					&lt;/span&gt;false&lt;br&gt;&lt;/span&gt;&amp;nbsp; Υποκατηγορία 1,2&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;			&lt;/span&gt;002&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;					&lt;/span&gt;true&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Υποκατηγορία 1,1,1&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;		&lt;/span&gt;453&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;0&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;					&lt;/span&gt;true&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family:Tahoma, Arial, Helvetica;font-size:12px;"&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;	&lt;/span&gt;&lt;u&gt;proin&lt;/u&gt;&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;&lt;u&gt;					&lt;/u&gt;&lt;/span&gt;009&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;				&lt;/span&gt;453&lt;span class="Apple-tab-span" style="white-space:pre;"&gt;					&lt;/span&gt;false&lt;br&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:12px;"&gt;ktl ktl ktl&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:12px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;&lt;div&gt;&lt;font class="Apple-style-span" face="Tahoma, Arial, Helvetica" size="3"&gt;&lt;span class="Apple-style-span" style="font-size:12px;"&gt;ετσι με ενα sql query και ενα For Each loop μπορεις να τα διχνεις και γραφηκα σε ενα treelist η αντιστοιχο control στην εφαρμογή σου για να καταλαβαινει ο χρηστης που ειναι και τι κανει.&lt;/span&gt;&lt;/font&gt;&lt;/div&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57057.aspx</link><pubDate>Wed, 10 Feb 2010 22:27:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57057</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57057.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57057</wfw:commentRss><description>&lt;P&gt;Δεν πρόσεξα ότι έκανες Post σε WebForms οπότε θα θέλεις να εμφανίζεις προϊόντα και κατηγορίες σε ένα container.&lt;BR&gt;Μπορείς να έχεις ένα πεδίο στις κατηγορίες που να δηλώνει αν η κατηγορία περιέχει προϊόντα η κατηγορίες πχ.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Category&lt;BR&gt;------------&lt;BR&gt;&amp;nbsp;bool HasProductsNotCategories &lt;/P&gt;
&lt;P&gt;Φτιάχνεις έναν ακόμη πίνακα&lt;/P&gt;
&lt;P&gt;ProductInCategory&lt;BR&gt;CategoryId&lt;BR&gt;ProductId&lt;/P&gt;
&lt;P&gt;Όταν η κατηγορία περιέχει κατηγορίες επιστρέφεις ένα View με&amp;nbsp;τις&amp;nbsp;&amp;nbsp;υποκατηγορίες και όταν περιέχει προϊόντα επιστρέφεις ένα view με προϊόντα, ελέγχοντας το HasProductsNotCategories&amp;nbsp;==1&amp;nbsp;.&lt;/P&gt;
&lt;P&gt;Με τον ίδιο τρόπο όταν κάνεις μεταβολή/εισαγωγή προϊόντα και κατηγορίες ελέγχεις HasProductsNotCategories., επιστρεφεις ενα ένα View που επιτρέπει μεταβολή λίστα προϊόντων η λίστα κατηγοριών.&lt;/P&gt;</description></item><item><title>Απ: πολλαπλές κατηγορίες υποκατηγορίες</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/57051.aspx</link><pubDate>Wed, 10 Feb 2010 08:28:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:57051</guid><dc:creator>Μπλουγουράς Γιάννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/57051.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=13&amp;PostID=57051</wfw:commentRss><description>&lt;P&gt;1) Αν θέλεις μία κατηγορία να ανήκει σε μία μονο κατηγορία τότε δημιουγείς ένα Πεδίο ParentId και κάνεις ένα Self Join με τον κωδικό της κατηγορίας. Δλδ χρειάζεσαι μόνο ένα Πίνακα όπως παρακάτω:&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;CREATE TABLE [dbo].[Category](&lt;BR&gt;&amp;nbsp;[Id] [int] IDENTITY(1,1) NOT NULL,&lt;BR&gt;&amp;nbsp;[ParentId] [int] NULL,&lt;BR&gt;&amp;nbsp;[Name] [nvarchar](64) NOT NULL,&lt;BR&gt;&amp;nbsp;CONSTRAINT [PK_Category] PRIMARY KEY CLUSTERED &lt;BR&gt;(&lt;BR&gt;&amp;nbsp;[Id] ASC&lt;BR&gt;)) ON [PRIMARY]&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;ALTER TABLE [dbo].[Category]&amp;nbsp; WITH CHECK ADD&amp;nbsp; CONSTRAINT [FK_Category_Category] FOREIGN KEY([ParentId])&lt;BR&gt;REFERENCES [dbo].[Category] ([Id])&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;ALTER TABLE [dbo].[Category] CHECK CONSTRAINT [FK_Category_Category]&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;declare @ParentId int&lt;BR&gt;Set&amp;nbsp; @ParentId=1&lt;/P&gt;
&lt;P&gt;SELECT [Id],[ParentId] , [Name] FROM [Category] where ParentId is Null&amp;nbsp;&amp;nbsp; /*Για να κάνεις Select τις κύριες κατηγορίες */&lt;/P&gt;
&lt;P&gt;SELECT [Id],[ParentId] , [Name] FROM [Category] where ParentId&amp;nbsp;&lt;A href="mailto:=@ParentId"&gt;=@ParentId&lt;/A&gt;&amp;nbsp;&amp;nbsp; /*Για να κάνεις Select τις κατηγορίες μίας κατηγορίας */&lt;/P&gt;
&lt;P&gt;2) Αν θέλεις οι κατηγορίες να ανήκουν σε περισσότερες από μία κατηγορία τότε θα χρειαστείς 2 πίνακες έναν να κρατά τις κατηγορίες και έναν για τις σχέσεις μεταξύ τους&amp;nbsp;όπως παρακάτω:&lt;/P&gt;
&lt;P&gt;CREATE TABLE [dbo].[Category](&lt;BR&gt;&amp;nbsp;[Id] [int] IDENTITY(1,1) NOT NULL,&lt;BR&gt;&amp;nbsp;[Name] [nvarchar](64) NOT NULL,&lt;BR&gt;&amp;nbsp;CONSTRAINT [PK_Category] PRIMARY KEY CLUSTERED &lt;BR&gt;(&lt;BR&gt;&amp;nbsp;[Id] ASC&lt;BR&gt;) ON [PRIMARY]&lt;BR&gt;) ON [PRIMARY]&lt;/P&gt;
&lt;P&gt;GO&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;CREATE TABLE [dbo].[CategoryGroup](&lt;BR&gt;&amp;nbsp;[CategoryId] [int] NOT NULL,&lt;BR&gt;&amp;nbsp;[ParentId] [int] NOT NULL,&lt;BR&gt;&amp;nbsp;CONSTRAINT [PK_CategoryGroup] PRIMARY KEY CLUSTERED &lt;BR&gt;(&lt;BR&gt;&amp;nbsp;[CategoryId] ASC,&lt;BR&gt;&amp;nbsp;[ParentId] ASC&lt;BR&gt;)ON [PRIMARY]&lt;BR&gt;) ON [PRIMARY]&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;ALTER TABLE [dbo].[CategoryGroup]&amp;nbsp; WITH CHECK ADD&amp;nbsp; CONSTRAINT [FK_CategoryGroup_Category] FOREIGN KEY([CategoryId])&lt;BR&gt;REFERENCES [dbo].[Category] ([Id])&lt;BR&gt;GO&lt;BR&gt;ALTER TABLE [dbo].[CategoryGroup] CHECK CONSTRAINT [FK_CategoryGroup_Category]&lt;BR&gt;GO&lt;/P&gt;
&lt;P&gt;ALTER TABLE [dbo].[CategoryGroup]&amp;nbsp; WITH CHECK ADD&amp;nbsp; CONSTRAINT [FK_CategoryGroup_Category1] FOREIGN KEY([ParentId])&lt;BR&gt;REFERENCES [dbo].[Category] ([Id])&lt;BR&gt;GO&lt;BR&gt;ALTER TABLE [dbo].[CategoryGroup] CHECK CONSTRAINT [FK_CategoryGroup_Category1]&lt;BR&gt;GO&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;/*Για να κάνεις Select τις κατηγορίες μίας κατηγορίας */ &lt;/P&gt;
&lt;P&gt;declare @ParentId int&lt;BR&gt;Set&amp;nbsp; @ParentId=1&lt;/P&gt;
&lt;P&gt;SELECT&amp;nbsp; &lt;BR&gt;&amp;nbsp;dbo.Category.Id, &lt;BR&gt;&amp;nbsp;dbo.Category.Name&lt;BR&gt;FROM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;dbo.Category &lt;BR&gt;WHERE &amp;nbsp;&lt;BR&gt;&amp;nbsp;dbo.Category.Id IN (SELECT dbo.CategoryGroup.CategoryId FROM dbo.CategoryGroup WHERE &lt;A href="mailto:dbo.CategoryGroup.ParentId=@ParentId"&gt;dbo.CategoryGroup.ParentId=@ParentId&lt;/A&gt;)&amp;nbsp; /*Μπορείς να κάνεις και&amp;nbsp;Join&amp;nbsp;το &amp;nbsp;ΙN&amp;nbsp;( ) είναι ποίο απλό.*/ &lt;/P&gt;</description></item></channel></rss>