Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Databasfråga [Funderar fortfarande]

Postades av 2002-11-20 22:34:30 - Jesper Thörn, i forum access, Tråden har 18 Kommentarer och lästs av 924 personer

Försöker att sammanställa en kalender efter aktiviteter i flera databastabeller. Jag har gjort flera försök men jag har svårt att få till själva stukturen på det hela.

Jag tror att jag är tvungen att ha det mesta i olika tabeller för att spara på onödig kolumnplats(tomma kolumnfält).

Det jag nu vill göra är att markera ut i kalendern med iconer när jag har händelser i de olika tabellerna på ett visst datum och relaterat till u.ID_U Users u

Ungefär som på bilden:
http://hem.passagen.se/vurma/images/agenda.gif

Mina tabeller och kolumner kommer säkerligen att bli flera men för tillfället ser det ut ungefär så här:

Agenda_P
--------------------------
Datum_P | ID_P | Text_P

Agenda_A
--------------------------
Datum_A | ID_A | Text_A | Note_A

Traning
--------------------------
Datum_T | ID_T | AktivitetId_T | Text_T

Users
--------------------------
Namn_U | ID_U | Adress_U | Tel_U | Gata_U | Ort_U | Mnummer_U

Chatmote
--------------------------
Datum_C | ID_C | Text_C | Tid_C


Har ni några idéer hur man strukturerar upp detta?




Svara

Sv: Databasfråga

Postades av 2002-11-20 23:07:40 - Johan Djupmarker

Hur är datat relaterat? Innehåller datumkolumnerna enbart datum eller även tid? Finns det info om flera användare i tabellerna och hur vet man i sådana fall vem posten tillhör?

/Johan


Svara

Sv: Databasfråga

Postades av 2002-11-20 23:24:14 - Jesper Thörn

-"Hur är datat relaterat? Innehåller datumkolumnerna enbart datum eller även tid? Finns det info om flera användare i tabellerna och hur vet man i sådana fall vem posten tillhör?"

Datumkolumnerna innehåller endast datum.
Ja, det kan finnas info om alla avnändare i samtliga tabeller.
Detta är alla Id i tabellerna, altså om användare Bosse har ID 10 så
Står det i tabellen Users
Namn_U | ID_U
-------------------
Bosse | 10

Och gör ha ett inlägg i tex Traning så blir "ID_T", 10.

Så allt styr på personen(ID) samt datumet


Svara

Sv: Databasfråga

Postades av 2002-11-21 09:23:15 - Johan Djupmarker

Ahh, nu tror jag att jag förstår...

SELECT Namn_u, COUNT(ID_P) AS Agenda_P, COUNT(ID_A) AS Agenda_A, COUNT(Traning) AS Traning, COUNT(Chatmote) AS Chatmote
FROM Users
LEFT JOIN Agenda_P ON ID_U = ID_P
LEFT JOIN Agenda_A ON ID_U = ID_A
LEFT JOIN Traning ON ID_U = ID_T
LEFT JOIN Chatmote ON ID_U = ID_C
GROUP BY ID_U, Namn


Detta kommer visa antalet poster i varje tabell för varje användare...

/Johan


Svara

Sv: Databasfråga [Funderar fortfarande]

Postades av 2002-11-21 10:17:58 - Andreas Hillqvist

Jaf föreslår att du flyttar ut nyckeln: användare och datum till en separat tabell. Kommer noga att underlätta fråger. Eftersom du kan göra joins mot den då och på så sätt knyta tabellerna i en join:

Calender
--------------------------
Datum_X | ID_X | CalenderId

Agenda_P
--------------------------
Calender_P | Text_P

Agenda_A
--------------------------
Calender_A | Text_A | Note_A

Traning
--------------------------
Calender_T | AktivitetId_T | Text_T

Users
--------------------------
Namn_U | ID_U | Adress_U | Tel_U | Gata_U | Ort_U | Mnummer_U

Chatmote
--------------------------
Calender_C | Text_C | Tid_C


Eller så skippar du separata tabeller. och implementerar en dynamisk lösning:

Users
--------------------------
UserID | UserNamn | UserAdress | UserTel | UserGata | UserOrt | UserMnummer

Types
--------------------------
TypeId | TypeName | TypeDescription

Entry
--------------------------
EntryID | EntryUser | EntryType | EntryDate

Properties
--------------------------
PropertyId | PropertyName | PropertyDescription

EntryProperties
--------------------------
EntryPropertyId | EntryPropertyEntry | EntryPropertyProperty


Svara

Sv: Databasfråga [Funderar fortfarande]

Postades av 2002-11-21 15:30:20 - Jesper Thörn

Johan: Nej, du har missuppfattat mig, jag vill inte räkna några poster.

Andreas Hillqvist: Men hur skall då man veta att Bosses poster i tabellerna tillhör Bosse? Det personliga id:t måste väl finnas med när man lägger in en post i tex Agenda_P eller i Traning annars går det ju inte att koppla ihop saker i Bosses kalender.


Svara

Sv: Databasfråga [Funderar fortfarande]

Postades av 2002-11-21 15:44:26 - Johan Djupmarker

Jag missade datumet... Men om antalet är större än 0 finns det ju poster, det var väl det du ville kolla? Jag håller med Andreas, du borde lägga dagarna i en separat tabell, mycket enklare då...

/Johan


Svara

Sv: Databasfråga [Funderar fortfarande]

Postades av 2002-11-21 16:00:44 - Jesper Thörn

Ok, du menar så, ja det är en möjlighet ju.
Dagarna i en separat tabell?
Menar du att man lägger till aktiviteter i den tabellen samtidigt när man lägger till saker i de andra tabellerna?

Jag vill ju också få iconerna klickbara och då måste ju något slags idvärde ligga i länken.


Svara

Sv: Databasfråga [Funderar fortfarande]

Postades av 2002-11-21 21:28:25 - Andreas Hillqvist

I Calender tabellen lagrar du Datum i Datum_X, Användare i ID_X och länkar sedan det andra posterna till räknaren CalenderId.


Svara

Men...

Postades av 2002-11-25 18:59:29 - Jesper Thörn

Ok, men om jag lägger till en post i låt säga "agenda_P" så måste jag väl samtidigt uppdatera "calender" för att en post skall läggas till även där?
Jag använder aspteknik med vbScript, skulle jag kunna få ett litet exempel?

MVH Jeppe


Svara

Sv: Men...

Postades av 2002-11-25 19:25:40 - Andreas Hillqvist

<code>
Dim rs
Dim conn
Dim CalenderId
Const adUseServer = 2
Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "............................"


Set RS = Server.CreateObject("ADODB.Recordset")
RS.CursorLocation = adUseServer

RS.Open "SELECT * FROM Calender WHERE ID_X = " & UserId & " AND Datum_X = #" & varDate & "#", conn, adOpenKeyset, adLockOptimistic

If RS.EOF Then
RS.AddNew
RS("ID_X") = UserId
RS("Datum_X") = varDate
RS.Update
End If
CalenderId = RS("CalenderId")
RS.Close
Set RS = Nothing

Con.Execute "INSERT INTO Agenda_P (Calender_P, Text_P) VALUES (" & CalenderId & ", 'Test!'""

Con.Close
Set Con = Nothing

</code>


Svara

Sv: Men...

Postades av 2002-11-25 19:51:54 - Jesper Thörn

Tack...
Men då läggs ju inget in i den så kallade huvudtabellen. (Den som gavs namnet "calender")
Var det inte meningen att samtliga tabeller skall "styra" på en (calender).

Detta är ett virrvarr hur man kopplar ihop flera tabeller på en sida, jag vill ju dessutom få det så effektivt som möjligt .


Svara

Sv: Men...

Postades av 2002-11-25 20:48:35 - Jesper Thörn

Vad menar du med:

-"Eller så skippar du separata tabeller. och implementerar en dynamisk lösning:

Users
--------------------------
UserID | UserNamn | UserAdress | UserTel | UserGata | UserOrt | UserMnummer

Types
--------------------------
TypeId | TypeName | TypeDescription

Entry
--------------------------
EntryID | EntryUser | EntryType | EntryDate

Properties
--------------------------
PropertyId | PropertyName | PropertyDescription

EntryProperties
--------------------------
EntryPropertyId | EntryPropertyEntry | EntryPropertyProperty"


Svara

Sv: Men...

Postades av 2002-11-25 22:35:01 - Jesper Thörn

Nu så ser det ut så här, dock inte alla tabeller ännu men vad tror ni/du, är det ett effektivt sätt?
Id = request("Id")
d = request("datum")
SQL = "SELECT Count(chatmote.CM_Id) AS Inlchatmote,"&_
" (SELECT Count(Agenda.A_id) FROM Agenda WHERE Agenda.A_datum = #" & d & "# AND Agenda.A_id="& Id &") AS InlAgenda ,"&_
" (SELECT Count(Calendar.C_id) FROM Calendar WHERE Calendar.C_datum = #" & d & "# AND Calendar.C_id="& Id &") AS InlCalendar FROM chatmote"&_
" WHERE chatmote.CM_Id="& Id &" AND chatmote.CM_datum = #" & d & "#"


Svara

Sv: Men...

Postades av 2002-11-26 12:46:21 - Andreas Hillqvist

Vad tror du if-satren gör?
<code>
If RS.EOF Then
RS.AddNew
RS("ID_X") = UserId
RS("Datum_X") = varDate
RS.Update
End If
</code>
Om en post saknas läggs det till en. Annars används befintlig post.


Svara

Sv: Men...

Postades av 2002-11-26 12:48:56 - Andreas Hillqvist

Underfråger är inte bra. Det är enklare att ställa separata fråger om det bara skall jämföras mot en dag.


Svara

Sv: Men...

Postades av 2002-11-26 14:01:31 - Jesper Thörn

Du skriver:-"Underfråger är inte bra. Det är enklare att ställa separata fråger om det bara skall jämföras mot en dag"

Då går det alltså inte att göra så här?:
<code>
SQL = "SELECT Count(chatmote.CM_Id) AS Inlchatmote,"&_
" (SELECT Count(Agenda.A_id) FROM Agenda WHERE Agenda.A_datum = #" & d & "# AND Agenda.A_id="& Id &") AS InlAgenda ,"&_
" (SELECT Count(Calendar.C_id) FROM Calendar WHERE Calendar.C_datum = #" & d & "# AND Calendar.C_id="& Id &") AS InlCalendar FROM chatmote"&_
" WHERE chatmote.CM_Id="& Id &" AND chatmote.CM_datum = #" & d & "#"
</code>


Svara

Sv: Men...

Postades av 2002-11-26 18:29:16 - Andreas Hillqvist

Du kommer inte få något resultat om det saknas post för datumet i chatmote. Det är därför du skall ha en central tabell.


Svara

Sv: Men...

Postades av 2002-11-26 20:06:01 - Jesper Thörn

Det stämmer inte, jag behöver inte någon post. Nu har jag ingen post i "chatmöte" men ändå visas de andra posterna. Är selecten för övrigt ineffektiv?


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 768
27 960
271 761
545
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies