Frage : In einer Datenbank using eine ColdFusion Anwendung, muss ich Dokumente Dokumententhemen zuweisen.

Datenbank: Mitgliedstaat-SQL-Server 2005
ColdFusion Version 8

Hallo. Ich habe an dieser Aufgabe für eine Weile gearbeitet und habe einen Punkt erreicht, an dem ich um Hilfe bitten muss.

Aufgabe in Kürze: In einer Datenbank muss ich Dokumente Dokumententhemen zuweisen.

Geschichte:
Letzter Monat, gdemaria half mir -- sehr geduldig -- zu eine Anwendung konstruieren, die einem Benutzer erlaubt, Dokumente in einer Datenbank zu laden und zu handhaben. Die Anwendung arbeitet tadellos und ich erlernte eine Tonne, während gdemaria mich führte, wenn es sie aufbaute. Die Anwendung erlaubt einem Benutzer, ein Dokument zu erstellen; Akten (Doc., pdf, Bilder) laden dieser Teilnehmer mit diesem Dokument, und Metadaten handhaben, das das Dokument betrifft.

Jetzt muss ich geladene Dokumente Dokumententhemen zuweisen.

Aufgabe im Detail:

Im Allgemeinen muss ich meiner Anwendung die Fähigkeit hinzufügen, eine Tabelle zu aktualisieren: tbl_Document_Has_Topic.

Meine drei Funktionstabellen sind:

tbl_CEP_Documents (diese Tabelle hält Metadaten über CEP Dokumente), PK: DocumentID
tbl_CEP_Document_Topic (diese Tabelle hält eine Liste aller CEP Dokumenten-Themen), PK: DocumentTopicID
tbl_Document_Has_Topic (diese Tabelle bezieht tbl_CEP_Documents auf tbl_CEP_Document_Topic)

tbl_Document_Has_Topic Notwendigkeiten nur zwei Spalten:
DocumentID
DocumentTopicID

* DocumentID ist das PK in den tbl_CEP_Documents.
* DocumentTopicID ist das PK in tbl_CEP_Document_Topic.

..... Wenn ich ein DocumentTopicID einem DocumentID zuweise, dann wird dieses Dokument den korrekten Dokumenten-Themen zugewiesen.

Die ist die Funktion von tbl_Document_Has_Topic: zu DocumentTopicID einem DocumentID zuweisen.

Meine Aufgabe ist, in meinem Dokument einzuschließen redigieren Schnittstelle, ein auserwähltes Menü, das einem Benutzer erlaubt, Dokumenten-Themen zu beschließen, um einem Dokument zuzuweisen.

Ich addierte das auserwählte Menü. Ein Beispiel bitte hier sehen:

http://ebwebwork.com/cep/admin/insert_update.cfm?DocumentID=27

….Das auserwählte Menü beachten, „dieses Dokument CEP Themen zuzuweisen“. Das auserwählte Menü schlingt einfach sich durch die 24 möglichen CEP-Dokumententhemen. So:

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:

 
DocumentTopicID, DocumentTopic VORWÄHLEN
VON tbl_CEP_Document_Topic
AUFTRAG DURCH DocumentTopic
  
 
    

Dieses Dokument CEP Themen zuweisen
Mindestens ein Thema wählen. Um mehr als ein Thema vorzuwählen, den Ctrl-Schlüssel halten und Themen mit dem Mäuse-Cursor vorwählen.



Dieses auserwählte Menü funktioniert gut. Beachten, dass das im auserwählten Menü jedes DocumentTopic mit seinem korrekten DocumentTopicID zusammengepaßt wird.

So muss ich eine neue Frage, dass Updates tbl_Document_Has_Topic verlegen, using die Vorwähleren vom auserwählten Menü aufbauen.

Wo man diese Frage und welche Gestalt soll die Frage annehmen setzt?

Ein neues Dokument muss Dokumententhemen zugewiesen werden; und, vorhandene Dokumente müssen Themen jetzt und dann ändern.

In der Anwendung habe ich bereits Fragen, die ein neues Dokument einsetzen, und aktualisiere ein vorhandenes Dokument. Muss ich jene bestehenden Fragen ändern, damit die Fragen tbl_Document_Has_Topic mit passenden DocumentID und DocumentTopicID Werten aktualisieren? Das würde wie die Weise, sie zu tun scheinen. Und, ich würde ein inneres verursachen müssen verbinde (ich denke), um die Tabelle zu aktualisieren, tbl_Document_Has_Topic.

Bin ich Denken über dieses richtig?

Ich bin für jeden möglichen Rat sehr dankbar.

Ich füge meinen Arbeitscode an.

Als immer danke.

Eric B
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:
6:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:


 





 


 



 
 
  
 
   
 


 


        









  
    
	
			  
	
    
    
			  
	


 
 
 
  „Nichts“ von den tbl_CEP_Documents VORWÄHLEN
  WO DocumentTitle =  
  UND DocumentID  <> 
  
   
 
  
   
   
	
		   
	
    
      
   
    
    
    
    
				
    
  			  
				  UPDATE tbl_CEP_Documents
				  DocumentTitle   EINSTELLEN = ,
					DocumentType = ,
					DocumentAuthor = ,
				    DocumentAbstract = ,
				    DocumentPublicationDate = ,
				    DateRecordModified =  
				  WO DocumentID =  
			



    
				 
    
    
	
				
					
				 EINSATZ IN tbl_CEP_Documents
     					(
			            DocumentTitle,
            		    DocumentType,
                		DocumentAuthor,
		                DocumentAbstract,
        		        DocumentPublicationDate,
                		SSMA_TimeStamp
		                )
			     WERTE (
						  ,
						  ,
						  ,
						  ,
						  ,
		     			  
				         )         
					

		 





    
          max (DocumentID) als Identifikation vorwählen
           Von den tbl_CEP_Documents
      


        






           
					      
    
    
    

    

    
          
				         
  
		    	
      			
			           
     			       
   			      

			
				    
			
            

			
			
			 EINSATZ IN tbl_CEP_Files
     			(
                DocumentID,
                Dateiname,
				FileExtension,
				FileType,
				FileSize,
                isDeleted
                )
		     WERTE (
        		  
				  ,
				  ,
				  ,
				  ,
                  , 0
		           )         
				  
  
		     
  
           
              
               
           
         
					   
		         
    	   
       			UPDATE tbl_CEP_Files
           		IsDeleted EINSTELLEN = 1
        		In WO FileID ()
      		




		    
					
                    
  
		
				     
                         
                    
    
    


    
    
        


			   
					   
					                
					        
					       	
					         LÖSCHUNG von den tbl_CEP_Documents
					         WO DocumentID =  
					        
              
 					        
						 

	    
        
        
            
    		

  





       

     
     
  

  
  
  
		    
			




 
  
    
			  
			  
				    * von den tbl_CEP_Documents vorwählen in denen DocumentID = #val (form.DocumentID) #
			  

  			
			       
			  
    
	




 
			 
			 
#variables.error#

#FormTitle#

DocumentTopicID, DocumentTopic VORWÄHLEN VON tbl_CEP_Document_Topic AUFTRAG DURCH DocumentTopic

Dokument Identifikation: #URL.DocumentID#

Dokumenten-Titel

Dokumenten-Eingabe

Dokumenten-Autor

Dieses Dokument CEP Themen zuweisen
Mindestens ein Thema wählen. Um mehr als ein Thema vorzuwählen, den Ctrl-Schlüssel halten und Themen mit dem Mäuse-Cursor vorwählen.

Auszug dokumentieren

Publikations-Datum (Gebrauchform MM/DD/YYYY)

Unter, die Akten bitte sehen, die z.Z. mit Dokument Identifikation #URL.DocumentID# verbunden sind. Wenn es keine Akten gibt, die mit dem Dokument verbunden sind, dann erscheinen keine Akten unten. Sie haben die Wahl, zum einer Akte (pdf, Doc., Bildakte) zu laden, die die Akte mit Dokument Identifikation #URL.DocumentID# verbindet.

* von den tbl_CEP_files vorwählen in denen DocumentID = #val (form.DocumentID) # und isDeleted = 0
Dateiname Löschung
#getFiles.FileName#

Keine Akten werden diesem Dokument beigefügt.


Der Knopf löscht unten dieses Dokument, seinen Datenbanksatz und alle verbundenen Akten. Gebrauch sorgfältig.

Antwort : In einer Datenbank using eine ColdFusion Anwendung, muss ich Dokumente Dokumententhemen zuweisen.

>
> max (DocumentID) als Identifikation vorwählen
>           Von den tbl_CEP_Documents
>


Wenn Sie diese Frage verwenden, um die Identifikation eines eben eingesetzten Dokuments zurückzuholen…, nicht tun; -) In einer Umwelt mit vielen gleichzeitigen Benutzern ist es wahrscheinlich, die falsche Identifikation zurückzubringen  

Die beste Weise, den Wert einer erhöhenden Selbstspalte zu erhalten ist, CF8 cfquery „Resultats“ Attribut zu verwenden.  Nachdem ein EINSATZ, CF die Resultatsstruktur mit der neuer Rekord Identifikation bevölkert. Der Schlüsselname schwankt abhängig von Ihrer DB-Art

Beispiel: Für eine Datenbank Mitgliedstaat-SQL ist der Schlüsselname IDENTITYCOL

result= " newDocument " >
   EINSATZ IN tbl_CEP_Documents (… Spalten….). WERTE (......)



     Das neue documentID ist #newDocument.IDENTITYCOL#
cfoutput>


> Ich habe bereits Fragen, die ein neues Dokument einsetzen, und aktualisiere ein vorhandenes Dokument…
> Tue ich muss jene bestehenden Fragen ändern

Nur die EINSATZ-Frage, also Sie können das eben eingesetzte DocumentID zurückholen.  Das „Resultats“ Attribut einfach verwenden, wie oben beschrieben.  Mit einem UPDATE haben Sie bereits die Identifikation (IE #form.DocumentID#)

Da Sie eine unterschiedliche Tabelle ändern, würden Sie ein unterschiedliches cfquery verwenden.  Für neue Dokumente den EINSATZ in tbl_CEP_Documents zuerst tun.  Sobald Sie das neue documentID haben, können Sie es benutzen, um die vorgewählten Themen in Ihre zweite Tabelle einzusetzen.

Da die Thema Identifikation von Ihrem tbl_CEP_Document_Topic kommen, können Sie ein AUSERWÄHLTES verwenden, um zu ergreifen hinzufügen alle vorgewählten Themen von dieser Tabelle und einsetzen die Werte in tbl_Document_Has_Topic in einem fielen Sturzflug.  

Für beide Einsätze und Updates sicher sein, die zwei Fragen in einer Verhandlung einzuwickeln.  So entweder beide Fragen folgen, oder beide fallen… zusammen aus.

(Wieder, nehme ich an, dass Mitgliedstaat SQL die Datenbank. ist)

       
       

    EINSATZ IN tbl_CEP_Documents (… Spalten….). WERTE (......)


           
                   EINSATZ IN tbl_Document_Has_Topic (DocumentID, DocumentTopicID)
                  AUSERWÄHLT
                   >
                  , DocumentTopicID
                  VON tbl_CEP_Document_Topic
                 WO DocumentTopicID INNEN (
                      list= " zutreffend " >
                  )
               

       


Updates sind ein wenig unterschiedlich. Mehr über das in einer Minute.
 
Weitere Lösungen  

 
programming4us programming4us