<?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>Πρώτα Βήματα - Βάσεις δεδομένων</title><link>https://www.dotnetzone.gr:443/cs/forums/73/ShowForum.aspx</link><description>Για όσους κάνουν τα πρώτα τους βήματα στην Microsoft Access ή τον SQL Server, ή γενικότερα στη θεωρία βάσεων δεδομένων.</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/23659.aspx</link><pubDate>Wed, 17 Jan 2007 18:38:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23659</guid><dc:creator>moruin</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23659.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23659</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;table width="85%"&gt;&lt;tr&gt;&lt;td class="txt4"&gt;&lt;img src="/cs/Themes/dotnetzone-black/images/icon-quote.gif"&gt;&amp;nbsp;&lt;strong&gt;mns wrote:&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class="quoteTable"&gt;&lt;table width="100%"&gt;&lt;tr&gt;&lt;td valign="top" class="txt4"&gt;Το foreign key, όπως λέει και το όνομά του, αναφέρεται στο κλειδί &lt;b&gt;ενός&lt;/b&gt; άλλου πίνακα. Αν θέλεις να αναφερθείς σε δύο διαφορετικούς πίνακες, τότε έχεις δύο foreign keys. Αν θέλεις δύο πεδία σε ένα foreign key, τότε πρέπει αυτό να αναφέρεται σε &lt;b&gt;έναν &lt;/b&gt;άλλο πίνακα, του οποίου το primary key αποτελείται από τα &lt;b&gt;δύο &lt;/b&gt;αυτά πεδία.&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;Αυτή είναι η πιο σωστή απάντηση για τη χρήση ενός foreign key. Στο δικό σου πρόβλημα μπορείς να κάνεις το εξής, για να μη φτιάξεις και 4ο πίνακα μπορείς να κάνεις 2 foreign keys προς τους πίνακες 1 &amp;amp; 2 αντίστοιχα. Μετά θα κάνεις τον πίνακα 3 week, δηλαδή το primary key θα είναι τα 2 foreign keys. Δε ξέρω αν αυτό βολεύει το σχεδιασμό σου?&lt;img src="/cs/emoticons/emotion-42.gif" alt="Confused" /&gt; Σε γενικές γραμμές είναι μια λύση για τις n-n καταστάσεις.&lt;br&gt;</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23589.aspx</link><pubDate>Tue, 16 Jan 2007 08:38:45 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23589</guid><dc:creator>evliatsas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23589.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23589</wfw:commentRss><description>Ακριβώς όπως τα λέει η @mns. &lt;br /&gt;
&lt;br /&gt;
Εγώ είχα καταλάβει ότι θέλεις απλά δύο διαφορετικά FK.&lt;br /&gt;
&lt;br /&gt;
Προφανώς, θέλεις να υλοποιήσεις σχέση ν-ν (πολλά προς πολλά)&lt;br /&gt;
&lt;br /&gt;
Παραδείγματα θα βρείς και μέσα στο dotNetZone.</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23588.aspx</link><pubDate>Tue, 16 Jan 2007 08:32:10 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23588</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23588.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23588</wfw:commentRss><description>Το foreign key, όπως λέει και το όνομά του, αναφέρεται στο κλειδί &lt;b&gt;ενός&lt;/b&gt; άλλου πίνακα. Αν θέλεις να αναφερθείς σε δύο διαφορετικούς πίνακες, τότε έχεις δύο foreign keys. Αν θέλεις δύο πεδία σε ένα foreign key, τότε πρέπει αυτό να αναφέρεται σε &lt;b&gt;έναν &lt;/b&gt;άλλο πίνακα, του οποίου το primary key αποτελείται από τα &lt;b&gt;δύο &lt;/b&gt;αυτά πεδία.&lt;br&gt;</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23587.aspx</link><pubDate>Tue, 16 Jan 2007 08:23:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23587</guid><dc:creator>prince_elrik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23587.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23587</wfw:commentRss><description>@evliatsas &lt;br /&gt;
&lt;br /&gt;
έτσι όμως δεν είναι σαν να προσθέτω 2 ξεχωριστά foreign keys και όχι ένα σύνθετο?</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23586.aspx</link><pubDate>Tue, 16 Jan 2007 08:12:59 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23586</guid><dc:creator>evliatsas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23586.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23586</wfw:commentRss><description>Μπορείς να κάνεις το εξής:&lt;br /&gt;
&lt;br /&gt;
Αρχικά να δώσεις ένα foreign key(π.χ το e) και έπειτα να δώσεις την εντολή&lt;br /&gt;
&lt;br /&gt;
ALTER TABLE pinakas3&lt;br /&gt;
&lt;br /&gt;
ADD FOREIGN KEY (f) REFERENCES pinakas2(c);&lt;br /&gt;
&lt;br /&gt;
Αυτό βέβαια είναι ένα workaround, επειδή μου διαφεύγει η ακριβής σύνταξη για να προσθέσεις στο Create Table και τα δύο FK, αλλά δουλεύει.</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23583.aspx</link><pubDate>Tue, 16 Jan 2007 08:00:28 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23583</guid><dc:creator>prince_elrik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23583.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23583</wfw:commentRss><description>@mns&lt;br /&gt;
&lt;br /&gt;
Κατάλαβα το σκεπτικό σου, το σκέφτηκα και εγώ αυτό με τον επιπλέον πίνακα απλά προσπαθώ να τον αποφύγω. Θα ήθελα να ρωτήσω το εξής:&lt;br /&gt;
&lt;br /&gt;
Άμα χρησιμοποιήσω άλλου είδους κλειδί (unique κλπ) θα πετύχει?&lt;br /&gt;
&lt;br /&gt;
Δηλαδή να ξεχάσουμε το foreign key και να έχουμε ένα σύνθετο κλειδί που να έχει τα (α,γ).</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23581.aspx</link><pubDate>Tue, 16 Jan 2007 07:40:36 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23581</guid><dc:creator>prince_elrik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23581.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23581</wfw:commentRss><description>Μάλλον δεν ήμουν ιδιαίτερα σαφής. Έχουμε τους εξής 2 πίνακες.&lt;br /&gt;&lt;br /&gt;create table pinakas1(&lt;br /&gt;a varchar(10) primary key,&lt;br /&gt;b varchar(10));&lt;br /&gt;create table pinakas2(&lt;br /&gt;c varchar(10) primary key,&lt;br /&gt;d varchar(10));&lt;br /&gt;&lt;br /&gt;και θέλω να δημιουργήσω τον πίνακα 3 που να κάνει το εξής:&lt;br /&gt;&lt;br /&gt;create table pinakas3(&lt;br /&gt;e varchar(10),&lt;br /&gt;f varchar(10),&lt;br /&gt;g varchar(10),&lt;br /&gt;primary key (e),&lt;br /&gt;foreign key (f,e) references pinakas1(a),pinakas2(c));&lt;br /&gt;&lt;br /&gt;//Δηλαδή το f να κάνει reference στο α του πίνακα 1 &lt;br /&gt;&lt;br /&gt;//και το e να κάνει reference στο c του πίνακα 2&lt;br /&gt;&lt;br /&gt;Χρησιμοποιώ MySQL σε αυτήν την βάση μου και όταν γράφω τον παραπάνω κώδικα παίρνω το σφάλμα ότι υπάρχει συνακτικό πρόβλημα στην γραμμή με το foreign key. &lt;br /&gt;Ψάχνοντας στο mysql manual βρήκα ότι μπορώ να αντικαταστήσω το παραπάνω με το εξής:&lt;br /&gt;&lt;br /&gt;foreign key (f,e) references pinakas1(a,c));&lt;br /&gt;με την προΰπόθεση ότι τα a,c είναι στον ίδιο πίνακα. Αλλά σε μένα δεν είναι. Οπότε ρωτάω πως μπορώ να αλλάξω το foreign key ώστε να με καλύπτει?</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23580.aspx</link><pubDate>Tue, 16 Jan 2007 07:23:48 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23580</guid><dc:creator>Νατάσα Μανουσοπούλου</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23580.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23580</wfw:commentRss><description>Το σενάριο που περιγράφεις δεν έχει ένα σύνθετο, αλλά δύο ανεξάρτητα ξένα κλειδιά. Αν θέλεις οπωσδήποτε, για κάποιο λόγο, το ζεύγος (α,γ) να είναι όντως ξένο κλειδί, κοντολογίς να μην επιτρέπονται όλοι οι συνδυασμοί (α,γ), θέλεις έναν επιπλέον πίνακα. Εκεί θα περιέχονται τα επιτρεπτά ζεύγη (α,γ) και ο πίνακας θα έχει σύνθετο κλειδί (α,γ), κάθε στοιχείο του οποίου θα είναι επίσης ξένο κλειδί. Ο πίνακάς σου (ε,ζ,η) θα κάνει αναφορά στον νέο πίνακα αυτό και όχι στους αρχικούς.&lt;br&gt;</description></item><item><title>Απ: Σύνθετο ξένο κλειδί</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/23578.aspx</link><pubDate>Tue, 16 Jan 2007 06:18:25 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23578</guid><dc:creator>evliatsas</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23578.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23578</wfw:commentRss><description>&lt;P&gt;Άν κατάλαβα καλά, το σενάριο&amp;nbsp;που σκέφτεσαι, περιγράφει τα LookUp Tables.&lt;/P&gt;
&lt;P&gt;Δηλαδή πίνακες που κρατούν δεδομένα τα οποία επαναλαμβάνονται μέσα σε έναν άλλο πίνακα.&lt;/P&gt;
&lt;P&gt;Π.χ. δύο πίνακες που κρατούν τις πόλεις και τις θέσεις εργασίας, και τα δεδομένα τους αντιστοιχούν στα αντίστοιχα πεδία ενός πίνακα που "κρατάει" το προσωπικό μιας εταιρίας.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Άν αυτό είναι το σενάριο, τότε είναι πολύ διαδεδομένο και υπάρχουν άπειρα παραδείγματα.&lt;/P&gt;
&lt;P&gt;Εκτός και άν δεν κατάλαβα σωστά από την περιγραφή σου και θέλεις να υλοποιήσεις μία σχέση πολλά προς πολλά (ν-ν) με ενδιάμεσο πίνακα, που είναι άλλο ...ευαγγέλιο.&lt;/P&gt;
&lt;P&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/23573.aspx</link><pubDate>Tue, 16 Jan 2007 05:35:08 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:23573</guid><dc:creator>prince_elrik</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/23573.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=73&amp;PostID=23573</wfw:commentRss><description>Καλησπέρα,&lt;br /&gt;έχουμε 2 πίνακες με την εξής μορφή:&lt;br /&gt;&lt;br /&gt;πίνακας 1 με πεδία (α,β);&lt;br /&gt;πίνακας 2 με πεδία (γ,δ);&lt;br /&gt;με αντίστοιχα πρωτεύοντα κλειδιά το α και το γ.&lt;br /&gt;&lt;br /&gt;Έστω ότι θέλω να δημιουργήσω τον πίνακα γ με πεδία (ε,ζ,η). Ο οποίος θα είναι:&lt;br /&gt;ε -&amp;gt; primary key&lt;br /&gt;(ζ,η) -&amp;gt;foreign key στο οποίο το ζ να κάνει reference στο α και το η να κάνει reference στο γ.&lt;br /&gt;Μπορεί να γίνει κάτι τέτοιο? μέχρι στιγμής όσο και να έψαξα δεν κατάφερα να γράψω τον σωστό κώδικα. Γνωρίζω πως να υλοποιήσω ξένο κλειδί που να κάνει reference σε στοιχεία ίδιου πίνακα αλλά σε 2 διαφορετικά στοιχεία 2 ξεχωριστών πινάκων γίνεται?&lt;br /&gt;&lt;br /&gt;Σας ευχαριστώ. &lt;br /&gt;</description></item></channel></rss>