|
-
09-02-2010, 22:53
|
-
DaltonGR
-
-

-
Μέλος από τις 06-12-2006
-
Χανιά
-
Δημοσιεύσεις 376
-
-
|
πολλαπλές κατηγορίες υποκατηγορίες
Καλησπέρα, Πώς μπορώ να αφήσω τον χρήστη να δημιουρφεί πολλαπλές κατηγορίες και υποκατηγορίες και να καταχωρεί εκεί τα είδη του. Παράδειγμα έχουμε ΚΑτηγορία 1 Υποκατηγορία 1,1 Υποκατηγορία 1,2 Υποκατηγορία 1,1,1 ΚΑτηγορία 2
Υποκατηγορία 2,1
Υποκατηγορία 2,2 Υποκατηγορία 2,1,1 Κατηγορία 3 Κατηγορία 4 Υποκατηγορία 4,1
Υποκατηγορία 4,1,1
κτλ και μετά να καταχωρεί τα είδη του.
Χρησιμοποιό VS20005 και SQL server 2005..
Ευχαριστώ εκ των προτέρων...
|
|
-
10-02-2010, 00:28
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
1) Αν θέλεις μία κατηγορία να ανήκει σε μία μονο κατηγορία τότε δημιουγείς ένα Πεδίο ParentId και κάνεις ένα Self Join με τον κωδικό της κατηγορίας. Δλδ χρειάζεσαι μόνο ένα Πίνακα όπως παρακάτω:
CREATE TABLE [dbo].[Category]( [Id] [int] IDENTITY(1,1) NOT NULL, [ParentId] [int] NULL, [Name] [nvarchar](64) NOT NULL, CONSTRAINT [PK_Category] PRIMARY KEY CLUSTERED ( [Id] ASC )) ON [PRIMARY]
GO
ALTER TABLE [dbo].[Category] WITH CHECK ADD CONSTRAINT [FK_Category_Category] FOREIGN KEY([ParentId]) REFERENCES [dbo].[Category] ([Id]) GO
ALTER TABLE [dbo].[Category] CHECK CONSTRAINT [FK_Category_Category] GO
declare @ParentId int Set @ParentId=1
SELECT [Id],[ParentId] , [Name] FROM [Category] where ParentId is Null /*Για να κάνεις Select τις κύριες κατηγορίες */
SELECT [Id],[ParentId] , [Name] FROM [Category] where ParentId =@ParentId /*Για να κάνεις Select τις κατηγορίες μίας κατηγορίας */
2) Αν θέλεις οι κατηγορίες να ανήκουν σε περισσότερες από μία κατηγορία τότε θα χρειαστείς 2 πίνακες έναν να κρατά τις κατηγορίες και έναν για τις σχέσεις μεταξύ τους όπως παρακάτω:
CREATE TABLE [dbo].[Category]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](64) NOT NULL, CONSTRAINT [PK_Category] PRIMARY KEY CLUSTERED ( [Id] ASC ) ON [PRIMARY] ) ON [PRIMARY]
GO
CREATE TABLE [dbo].[CategoryGroup]( [CategoryId] [int] NOT NULL, [ParentId] [int] NOT NULL, CONSTRAINT [PK_CategoryGroup] PRIMARY KEY CLUSTERED ( [CategoryId] ASC, [ParentId] ASC )ON [PRIMARY] ) ON [PRIMARY] GO
ALTER TABLE [dbo].[CategoryGroup] WITH CHECK ADD CONSTRAINT [FK_CategoryGroup_Category] FOREIGN KEY([CategoryId]) REFERENCES [dbo].[Category] ([Id]) GO ALTER TABLE [dbo].[CategoryGroup] CHECK CONSTRAINT [FK_CategoryGroup_Category] GO
ALTER TABLE [dbo].[CategoryGroup] WITH CHECK ADD CONSTRAINT [FK_CategoryGroup_Category1] FOREIGN KEY([ParentId]) REFERENCES [dbo].[Category] ([Id]) GO ALTER TABLE [dbo].[CategoryGroup] CHECK CONSTRAINT [FK_CategoryGroup_Category1] GO
/*Για να κάνεις Select τις κατηγορίες μίας κατηγορίας */
declare @ParentId int Set @ParentId=1
SELECT dbo.Category.Id, dbo.Category.Name FROM dbo.Category WHERE dbo.Category.Id IN (SELECT dbo.CategoryGroup.CategoryId FROM dbo.CategoryGroup WHERE dbo.CategoryGroup.ParentId=@ParentId) /*Μπορείς να κάνεις και Join το ΙN ( ) είναι ποίο απλό.*/
Μπλουγουράς Γιάννης Wizcom O.E.
|
|
-
10-02-2010, 14:27
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Δεν πρόσεξα ότι έκανες Post σε WebForms οπότε θα θέλεις να εμφανίζεις προϊόντα και κατηγορίες σε ένα container. Μπορείς να έχεις ένα πεδίο στις κατηγορίες που να δηλώνει αν η κατηγορία περιέχει προϊόντα η κατηγορίες πχ.
Category ------------ bool HasProductsNotCategories
Φτιάχνεις έναν ακόμη πίνακα
ProductInCategory CategoryId ProductId
Όταν η κατηγορία περιέχει κατηγορίες επιστρέφεις ένα View με τις υποκατηγορίες και όταν περιέχει προϊόντα επιστρέφεις ένα view με προϊόντα, ελέγχοντας το HasProductsNotCategories ==1 .
Με τον ίδιο τρόπο όταν κάνεις μεταβολή/εισαγωγή προϊόντα και κατηγορίες ελέγχεις HasProductsNotCategories., επιστρεφεις ενα ένα View που επιτρέπει μεταβολή λίστα προϊόντων η λίστα κατηγοριών.
Μπλουγουράς Γιάννης Wizcom O.E.
|
|
-
10-02-2010, 14:48
|
-
Johnnyxp64
-
-

-
Μέλος από τις 30-08-2008
-
Earth
-
Δημοσιεύσεις 554
-
-
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
μπορεις να τα εχεις ολα σε ενα πινακα και απλα να κανεις τα εξεις
1)φτιαξε πεδια ID-------ParentID---IsCategory
θα φτιαχνεις μεσα στον πινακα με τα ειδη και ενα ειδος - κατηγορια ομως και θα παιζεις με τα ID & ParentID οπως κανει και ενα Windows TreeList περιπου
στο παραδειγμα σου πανω
ΝΑΜΕ ID ParentID IsCategory ΚΑτηγορία 1 001 0 true Υποκατηγορία 1,1 607 001 true proion 006 001 false Υποκατηγορία 1,2 002 0 true Υποκατηγορία 1,1,1 453 0 true proin 009 453 false
ktl ktl ktl
ετσι με ενα sql query και ενα For Each loop μπορεις να τα διχνεις και γραφηκα σε ενα treelist η αντιστοιχο control στην εφαρμογή σου για να καταλαβαινει ο χρηστης που ειναι και τι κανει.
This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
|
|
-
10-02-2010, 15:55
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Γεία σου John. Για τα προϊόντα πρέπει να έχεις ενα πεδίο με Foreign Key στα Products.
Category ---------- ParentId ProductId < αλλίως δεν έχεις constraint.
Μπλουγουράς Γιάννης Wizcom O.E.
|
|
-
10-02-2010, 17:58
|
-
Johnnyxp64
-
-

-
Μέλος από τις 30-08-2008
-
Earth
-
Δημοσιεύσεις 554
-
-
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
hi John 
αυτο ειναι κατ εμε "προαιρετικο" και κατι που ερχεται σε 2η μοιρα, προσωπικά δεν μου αρέσει να κανω σχεσεις πανω στην βαση, τις κανω απο κοδικα, φυσικα μια τετοια σχεση θα τον διευκολήνει σε ερωτηματα ργοτερα και αμα παιξει με linq2sql αλλα, δεν ειναι απαραιτητο να την κανει στην βαση. 
αυτο ειναι καθαρα στον τροπο που εχει μαθει κανεις να δουλευει, οπως ειπα καθαρα προσωπικα δεν μου αρέσει και η XPO σε συνδυασμό με Linq2SQL και programmable relationship (γενικα sτο ado.net) με έχουν απαλαξει απο το αγχος της βασης!  ασε που ετσι ειμαι ποιο portable!
αλλα γενικα λεω ενα πινακα και οχι 2-3 ενα πινακα για προιοντα και στον ιδιο θα ειναι και οι κατηγοριες!
This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
|
|
-
11-02-2010, 17:30
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Μπλουγουράς Γιάννης:
Γεία σου John. Για τα προϊόντα πρέπει να έχεις ενα πεδίο με Foreign Key στα Products.
Category ---------- ParentId ProductId < αλλίως δεν έχεις constraint.
Το παραπάνω το έδειξα μόνο για τα Contraints, δεν είναι ο σωστός τρόπος, διότι επιτρέπει μόνο 1 προϊόν ανα κατηγορία.
Στην ποιο ανεπτυγμένη σχεδίαση έχουμε: Category Id Name HasProductsNotCategories
Product Id Name
ProductInCategory CategoryId ProductId
SubCategoryInCategory ParentCategoryId SubCategoryId
Και στην ποιό απλή μορφή:
Category Id ParentId Name HasProductsNotCategories
Product Id Name CategoryId
Οταν έχουμε Category.HasProductsNotCategories=1 τότε επιστρέφουμε το userControl με τα προϊόντα.
Θα μπορούσα να γράψω και την υλοποίηση σε WebForms, άλλα πιστευώ, πως πρέπει κάποιος να κάνει και μία προσπάθεια μόνος του. Ειδικά όταν αυτός που κάνει την ερώτηση δεν συμμετέχει στην συζήτηση.
Μπλουγουράς Γιάννης Wizcom O.E.
|
|
-
11-02-2010, 17:45
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Johnnyxp64:
hi John 
αυτο ειναι κατ εμε "προαιρετικο" και κατι που ερχεται σε 2η μοιρα, προσωπικά δεν μου αρέσει να κανω σχεσεις πανω στην βαση, τις κανω απο κοδικα, φυσικα μια τετοια σχεση θα τον διευκολήνει σε ερωτηματα ργοτερα και αμα παιξει με linq2sql αλλα, δεν ειναι απαραιτητο να την κανει στην βαση.

Johnny, πραγματικά αυτή τη φορά με άφησες άφωνο . Πριν δώσεις συμβουλές για σχεδίαση βάσης θα πρέπει να μάθεις ΤΙ είναι τα Foreign Key Constraints και ΓΙΑΤΙ χρειάζονται. Όταν ο κώδικας σου θα σβήσει μερικές χιλιάδες εγγραφές κατά λάθος, θα καταλάβεις και γιατί είναι ΚΑΚΗ ιδέα να κάνεις τους ελέγχους μόνο στον κώδικα.
Κάποιος λόγος υπάρχει που υπάρχουν αυτά τα πράγματα στη βάση. Δεν είμαστε όλοι παράξενοι που τα χρησιμοποιούμε τόσες δεκαετίες. Αν δεν τον καταλαβαίνεις, φρόντισε να τον καταλάβεις πριν δώσεις επικίνδυνες συμβουλές.
Και όσο για τους πίνακες, ένας πίνακας πρέπει να έχει ένα σκοπό. Ή θα περιλαμβάνει προϊόντα, ή θα περιλαμβάνει κατηγορίες. Το ανακάτωμα τους είναι ΚΑΚΗ σχεδίαση. Αν θυμάσαι τί είναι η 2η κανονική μορφή, είναι αυτή που λέει ότι ΔΕΝ ανακατώνουμε διαφορετικά πράγματα μέσα στον ίδιο πίνακα.
Και τα Foreign Key Constraints και οι κανόνες κανονικοποίησης είναι πράγματα που μαθαίνει κανείς στο πρώτο-πρώτο μάθημα για βάσεις δεδομένων. Δεν μπορεί κάποιος να είναι επαγγελματίας προγραμματιστής και να μην τα ξέρει.
Παναγιώτης Καναβός, Freelancer Twitter: http://www.twitter.com/pkanavos
|
|
-
11-02-2010, 18:11
|
-
Johnnyxp64
-
-

-
Μέλος από τις 30-08-2008
-
Earth
-
Δημοσιεύσεις 554
-
-
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Παναγιώτης Καναβός: Johnnyxp64:
hi John 
αυτο ειναι κατ εμε "προαιρετικο" και κατι που ερχεται σε 2η μοιρα, προσωπικά δεν μου αρέσει να κανω σχεσεις πανω στην βαση, τις κανω απο κοδικα, φυσικα μια τετοια σχεση θα τον διευκολήνει σε ερωτηματα ργοτερα και αμα παιξει με linq2sql αλλα, δεν ειναι απαραιτητο να την κανει στην βαση.

Johnny, πραγματικά αυτή τη φορά με άφησες άφωνο . Πριν δώσεις συμβουλές για σχεδίαση βάσης θα πρέπει να μάθεις ΤΙ είναι τα Foreign Key Constraints και ΓΙΑΤΙ χρειάζονται. Όταν ο κώδικας σου θα σβήσει μερικές χιλιάδες εγγραφές κατά λάθος, θα καταλάβεις και γιατί είναι ΚΑΚΗ ιδέα να κάνεις τους ελέγχους μόνο στη βάση.
Κάποιος λόγος υπάρχει που υπάρχουν αυτά τα πράγματα στη βάση. Δεν είμαστε όλοι παράξενοι που τα χρησιμοποιούμε τόσες δεκαετίες. Αν δεν τον καταλαβαίνεις, φρόντισε να τον καταλάβεις πριν δώσεις επικίνδυνες συμβουλές.
Και όσο για τους πίνακες, ένας πίνακας πρέπει να έχει ένα σκοπό. Ή θα περιλαμβάνει προϊόντα, ή θα περιλαμβάνει κατηγορίες. Το ανακάτωμα τους είναι ΚΑΚΗ σχεδίαση. Αν θυμάσαι τί είναι η 2η κανονική μορφή, είναι αυτή που λέει ότι ΔΕΝ ανακατώνουμε διαφορετικά πράγματα μέσα στον ίδιο πίνακα.
Και τα Foreign Key Constraints και οι κανόνες κανονικοποίησης είναι πράγματα που μαθαίνει κανείς στο πρώτο-πρώτο μάθημα για βάσεις δεδομένων. Δεν μπορεί κάποιος να είναι επαγγελματίας προγραμματιστής και να μην τα ξέρει.
Παναγιωτη προσεχε κι εσυ τι γραφω και μετα δίκασε.
δεν ειπα να μην εχει σχεσεις ειπα οτι αυτο και (προσωπικα) μου αρέσει να το κάνω στον κώδικα και οχι στην βαση! example: 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
| Imports System.Data.SqlClient
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim connetionString As String
Dim connection As SqlConnection
Dim command As SqlCommand
Dim adapter As New SqlDataAdapter
Dim ds As New DataSet
Dim firstSql As String
Dim secondSql As String
connetionString = "Data Source=ServerName;Initial Catalog=DatabaseName;User ID=UserName;Password=Password"
firstSql = "Your First SQL Statement Here"
secondSql = "Your Second SQL Statement Here"
connection = New SqlConnection(connetionString)
Try
connection.Open()
command = New SqlCommand(firstSql, connection)
adapter.SelectCommand = command
adapter.Fill(ds, "Table1")
adapter.SelectCommand.CommandText = secondSql
adapter.Fill(ds, "Table2")
adapter.Dispose()
command.Dispose()
connection.Close()
'creating data relations
Dim relation As DataRelation
Dim table1Column As DataColumn
Dim table2Column As DataColumn
'retrieve column
table1Column = ds.Tables("Table1").Columns(0)
table2Column = ds.Tables("table2").Columns(0)
'relating tables
relation = New DataRelation("relation", table1Column, table2Column)
'assign relation to dataset
ds.Relations.Add(relation)
MsgBox("Data relation completed")
Catch ex As Exception
MsgBox("Can not open connection ! ")
End Try
End Sub
End Class |
και αν θες να ξερεις πολυ επαγγελματιες πραγματικοι δουλεουν ετσι γιατι αμα εχεις και επαγγελματικη εφαρμογη παιζει και σε mssql / access kai se mysql kai se ce kai se oracle και οπου θες χωρις να χρειαζεται να τρελαινεσαι πως θα μεταφερεις τους πινακες και τις σχεσης τους απο την μια βαση στην αλλη!
Φυσικα και σε προστατευουν σε λαθος κινησεις φυσικα και ειναι καλο να υπαρχουν αλλα ξαναματαλεω δεν ειναι απαραιτητα να της κανεις μεσα στην βαση! αντιθετα σε δεσμευει! τι θα κανεις σε περιπτωση αλλαγης-προβληματος θα εγκαθηστας στον πελατη που εχει mssql το SQL Server Management Studio και θα καθεσαι να κανει με το χερι τις αλλαγες - διορθωσης στην βαση? ή θα αγχωνεσαι να κανεις scriptakia και θα τα τρεχεις σε πελατες με διαφορετικες εκδοσης - βασης...... καληνυχτα!
αμα ολα αυτα ομως τα εχεις στον κωδικα σου απλα του λες κατεβασε το update και εκει μεσα εχεις κανει το νεο relationship και ξεμπερδεψες! αφηστε τα θεωριτκα και τα βιλβια στην ακρη το XP δεν το αποκτας Μονο με τα βιβλια, αλλο απο τα κουλα που θα συναντησεις καθως φτιαχνεις εφαρμογες.
αν σου αρεσει να το κανεις ετσι επειδη ετσι το διαβασες η στο "ειπανε στο πρωτο μαθημα", fine by me, άσε τους άλλοuς να εχουν τους δικους εναλακτικους τροπους, και μην κανεις attack αμα δεν καταλαβες σωστα τα λεγομενα μου. Στην τελικη εδω απανταει ο καθένας στην ερώτηση δεν στήσαμε κουβεντούλα για να κρινόμαστε μεταξύ μας (κακοί επηρεασμοί μάλλον). για αυτά υπάρχει άλλο section το cafe ή p.m. 
.-
p.s from Gianni & tha symfoniso "Θα μπορούσα να γράψω και την υλοποίηση σε WebForms, άλλα πιστευώ, πως πρέπει κάποιος να κάνει και μία προσπάθεια μόνος του. Ειδικά όταν αυτός που κάνει την ερώτηση δεν συμμετέχει στην συζήτηση."
This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
|
|
-
11-02-2010, 18:29
|
-
Panagiotis Kefalidis
-
-

-
Μέλος από τις 09-05-2005
-
North America
-
Δημοσιεύσεις 1.204
-
-
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Δεν θα θέλω να απαντήσω γιατί ουσιαστικά τα ίδια με τον Παναγιώτη θα πω, αλλά καλό θα ήταν να δέχεσαι συμβουλές και παρατηρήσεις απο ανθρώπους που είναι 15 χρόνια στην πληροφορική και έχουν δει πολλά. Παγκοσμίως οι τεχνικές, αποδεδειγμένες, σωστές και σε βιβλία, και παντού, είναι αυτά που περιγράφει ο Παναγιώτης, κι όχι εσύ. Αν το βλέπεις σαν επίθεση, κακός, παρατήρηση είναι.
Το παράδειγμα για πολλαπλές βάσεις είναι τουλάχιστον άστοχο, δεν ισχύει τίποτα απο όλα αυτά τα οποία γράφεις. Δεν είσαι ο μοναδικός άνθρωπος στο πλανήτη που γράφεις "επαγγελματικές" εφαρμογές.
Κανείς δεν θέλει να σου την πει, ίσα ίσα να σε βοηθήσει θέλει να μην φας τα μούτρα σου. Αν δεν θέλεις βοήθεια μπορείς απλά να μην απαντάς ή να αποχωρήσεις.
Παναγιώτης Κεφαλίδης "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία" Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
|
|
-
-
11-02-2010, 18:48
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
John θα συμφωνήσω και εγω με τον Παναγιώτη. Είμαι στην διάθεση σου να σου εξηγήσω τον λόγο που έχεις άδικο.
Οι απαντήσεις που δίνονται στο φόρουμ είναι για να μαθαίνουμε όλοι, θέλει όμως λίγη προσοχή καθώς η λάθος πληροφόρηση που δίνουμε μπορεί να οδηγήσει νέους προγραμματιστές σε λάθος πρακτικές προγραμματισμού. Που σε βάθος χρόνου μπορούν να αποτελέσουν λόγο για να διεκοπεί η διάθεση προϊόντων λογισμικού. Το σίγουρο είναι ότι αυξάνουν τον χρόνο που χρειάζεται για συντήρηση και υποστήριξη.
Μπλουγουράς Γιάννης Wizcom O.E.
|
|
-
11-02-2010, 19:10
|
-
Johnnyxp64
-
-

-
Μέλος από τις 30-08-2008
-
Earth
-
Δημοσιεύσεις 554
-
-
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
καλα τι να πω δεν ξερεται Ελληνικα, δεν θελεται να καταλαβαιτε? δεν θα συγχυστώ έρχεται τρελη αδεια, δεν ξερω αν φταει το νεφος εκει κατω αλλά οταν καποιος δεν απαντα συγκερημενα και απαντα προσωπικά ειναι τουλάχιστον απαράδεκτο.
εγω καταλαβα τι λεει ο Παναγιωτης Κ (και σεβαστο), για τον άλλους συνηγόρους οταν θα σας ρωτήσω, μπορειτε να μου πειτε με ποιον ειστε και ποιον οχι, αδιαφορώ.
εγω λοιπον καταλαβα παρα πολυ καλα τι ειπε ο π.κ οπως και το δικαιολογω οτι αυτα τα ειπε γιατι δεν ερμηνευσε σωστα τα γραπτα μου οπως θα ηθελα να τα πω, με αποτελεσμα να γραψει αυτα. και μετα απανταω λεγοντας ακριβως τι ενοουσα αλλα εξακολουθουν καποιοι να μην θελουν να μελετησουν, απλα κοιτανε λεξεις ετσι πεταχτα και μπαινουν στην συζητηση να το παίξουν συνήγοροι!
δεν γουσταρω να μπω στο τρυπακι οπως προ μηνων και αυτη τη φορα για παρεξηγηση. καθηστε και κουβεντιαστε μεταξυ σας, εγω ειπα αυτο που ηθελα να πω στο ανθρωπο που ρωτησε κατι, αμα θελει το ακολουθει αμα δε θελει οχι. οσοι το καταλαβαν το καταλαβαν, οσοι δεν το καταλαβαν να μην το καταλαβουν ποτε. δεν κανω ποτε οτι δεν θα ηθελα να μου κανουν, στην προκειμενη περιπτωση να 0νισω τα λεγομενα καποιου βαση τις δικες μου ιδεες. δεν εχω να αποδειξω τιποτα και σε κανεναν, είτε ειναι πλαιος ήτε ειναι ψαρας. ο καθενας κανει οτι καλητερο μπορει, εγω τοσο μπορω τοσο κανω μικρο η μεγαλο το ληθαρακι μου αυτο εχω αυτο θα δωσω, αν δεν σας αρεσει καποιους τοτε εσεις μην συμετεχεται,
ειλικρινά το κώλυμα που εχουν 2-3 ατομα εδω περα να νομιζουν οτι πρεπει ολοι να είναι φωστήρες και να κανουν copy-paste το msdn δεν το καταλαβαίνω, εγω εμαθα να λυνω προβλήματα και με "πατέντες" κι ας μην ειναι στο msdn
και στην τελικη ειπα οτι αντι να κανεις τις σχεσεις μεσα στην βαση καντες απο τον κωδικα σου εναλλακτικα, που ειναι το λαθος Μην τρελαθουμε τελειως ρε παιδια! Ελεος! αμα ειναι "λαθος" τι διαολο το εχει το ado.net τοτε ως δυνατοτητα? ΑΑΑΑ Ασε ξερω, κι αυτοι "λάθος" ειναι!
αντε και πολυ ασχοληθηκα.-
This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
|
|
-
11-02-2010, 20:08
|
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
Κοιτα να δεις , ο τρόπος που εκφράζεσαι είναι ακρως προσβλητικός και επιθετικός. Σε πληροφορώ οτι τα ελληνικά μας είναι μια χαρά, ερμηνεύουμε αυτά που έγραψες και τα περισσότερα που έγγραψες εδώ είναι δυστυχώς λάθος.
Φρόντισε να καταλάβεις πρώτα τι γράφουν οι άλλοι πρίν ξεκινήσεις να γράφεις.
Τα DataRelations στην εφαρμογή υπάρχουν ως επέκταση των σχέσεων της βάσης δεδομένων, έτσι ώστε να μην επιτρέπεται σε επίπεδο εφαρμογής να παραβιάζονται οι κανόνες της βάσης δλδ τα Relations που έχεις ήδη, πρίν φτάσεις στην βάση δεδομένων. Τί γίνετε όμως αν κατα λάθος σβηστεί μία εγγραφή που είναι Foreign Key σε άλλο πίνακα; Χωρίς Relation παραμένει μία εγγραφή που περιέχει ένα πεδίο με κωδικό που πλέον δεν υπάρχει δλδ. orphaned child record. Δεν έχει σημασία αν έχεις Access, MS SQL Server, Oracle, MySql, PostgresSql. Πρέπει πάντα να έχεις RELATIONS ΣΤΗΝ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ. ΦΥΣΙΚΑ ΘΑ ΕΧΕΙΣ CHANGE SCRIPTS ΠΟΥ ΘΑ ΣΥΧΡΟΝΙΖΟΥΝ ΤΟ SCHEMA ΤΗΣ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ, ΜΕΣΑ ΑΠΟ ΤΗΝ ΕΦΑΡΜΟΓΗ. Αν διάβαζες και λίγο MSDN θα έβλεπες ότι υπάρχουν και έτοιμες λύσεις από τα προϊόντα που ήδη κάνεις χρήση αλλά και 3d Party.
Δεν υπάρχουν σωστές ή λάθος Λύσεις, όμως όταν δίνεις λύσεις με Πατέντες, γνωρίζεις εξαρχής ότι η λύση σου δεν είναι η ποίο βέλτιστη (Το δηλώνεις με την λέξη Πατέντα).
Το λιθαράκι σου αν είναι να δίνετε με Πατέντα, να το κρατήσεις για εσένα, όπως σου γράφω παραπάνω κάνει κακό σε αύτους που θέλουν να μάθουν χωρίς πατέντες με τον τρόπο που προτείνουν οι καλύτεροι. Αν έχεις διαφορετική άποψη, φρόντισε να καταλάβεις τι σου λένε, προσπάθησε να συγκρίνεις την υλοποίση και τις προτάσεις των άλλων.
Σε συμβουλεύω να διαβάσεις και εσύ λίγο MSDN θα εκπλαγείς τι μπορείς να μάθεις.
Μπλουγουράς Γιάννης Wizcom O.E.
|
|
-
11-02-2010, 20:40
|
-
Johnnyxp64
-
-

-
Μέλος από τις 30-08-2008
-
Earth
-
Δημοσιεύσεις 554
-
-
|
Απ: πολλαπλές κατηγορίες υποκατηγορίες
1) εκφράζομαι όπως με αναγκάζουν  δικαίωμά μου είναι.
αλλά ας το ξεχάσουμε αυτο.... 
2)δεν διαφωνώ σε αυτα που λες σε ιδικές γραμμές, αλλά σκέψου λίγο κι εσύ, στο πραδειγμα που εθεσε ο φιλος αρχη αρχη, μεσα σε μια κατηγορια εχεις 300προιοντα! μεχρι εδω καλα?
και λες θέλω να σβήσω την κατηγορία μόνο!
και ερωτώ λοιπόν, για να μάθω κι εγώ που δεν ξέρω, αν έχεις σχεσεις μεσα στην βαση προϊόντα με κατηγοριες, και θες να σβησεις Μονο την κατηγορια χωρις να φας σφαλμα, χωρις να αφήσεις "ορφανες" εγγραφες, αλλα όντως να τις αφήσεις άθικτες, τι κανεις? γιατι παραδειγμα εγω θελω να εχω ολα τα προιοντα χημα και ισως την επομενη τα βαλω σε αλλη ομαδα, χρηστης ειμαι οτι θελω ζηταω. δεν τα κατεβαζω απο το κεφαλι μου, τα εχω ακουσει και εχω φρικαρει πολλες φορες! και οταν ειναι να πουλησεις και να κανεις χαρουμενο τον πελατη, ΧΤΕΣ οχι μεθαυριο με την perfect μέθοδο(που γιατι οχι μπορει να μην ξερεις και δεν προλαβαινεις να μαθεις), οταν λοιπον πρεπει να κανεις αυτο που θελει ο αλλος, αμεσα και αποτελεσματικα με "οπιονδηποτε" τροπο αρκει να δουλευει,
τοτε βρε john πως το κουμανταρεις αυτο αν εχεις ολες τισ σχεσεις στην βαση? μπορεις να "σπασεις" για λιγο την σχεση να κανεις αυτο το μη "λογικο" ετοιμα, πως το κανεις? και γιατι το να κανεις χρηση τα DataRelations το καθηστα "πατεντα"-λυση μη επιτρεπτει?μπορει κατι οντος να παει στραβα? αν ναι τι? αν οχι απλα γιατι το book το λεει τοτε συγνωμη, θα διαφωνησω.
και
3)δεν ειναι βολικο το Update chema, γιατι εχεις 1 ακομα πραγμα να αγχώνεσαι.(προσωπική αποψη ξαναλεω).
tnx
This Business Is Binary. You are a 1 or a 0. Alive or Dead.-
|
|
Σελίδα 1 από 2 (16 εγγραφές)
1
|
|
|