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


Databasproblem

Postades av 2006-10-24 19:25:48 - Michael Bohman, i forum asp.net generellt, Tråden har 10 Kommentarer och lästs av 615 personer

Hejsan
Sitter med en liten filuring här och undrar om man kan lösa detta på något sätt. Jag skulle vilja att samtidigt som jag läser rad för rad i en databas ha möjlighet att ändra/uppdatera posten i fråga. Är det möjligt?

//Micke


Svara

Sv: Databasproblem

Postades av 2006-10-24 21:50:48 - Andreas Hillqvist

Kan du förklara lite mer konkret vad du vill göra?

Om du vill uppdatera en räknare:

UPDATE CounterColumn = CounterColumn + 1
FROM TableName
WHERE CounterId = ?


Svara

Sv:Databasproblem

Postades av 2006-10-26 22:47:09 - Michael Bohman

Hej Andreas...
Jo jag tänkte så här att jag har konstruerat en textsträng med avgränsare, ex namn1,namn2,namn3 osv.. Dessa loopar jag igenom då jag gjort strängen till en vektor (ToCharArray()). Alla namnen finns i ett register i en databas som jag går igenom post för post och gör en jämförselse med den aktuella textsträngen. Om nu exempelvis namn2 skulle vara bortaget i databasen men inte i textsträngen finns det då möjlighet att skriva till databasen och uppdatera värdet medan pekaren finns på rätt rad i databasen?

MVH
Michael


Svara

Sv: Databasproblem

Postades av 2006-10-27 11:23:09 - Andreas Hillqvist

JAg rekkomenderar dig starkt att överväga din datastruktur.
Det är ALDRIG bra att lagra flera värden i en kolumn på det sätt som du beskriver.
Vad händer om kolumnen blir full, sökningar, uppdateringa är långsama/ineffektiva?

Varför inte dela upp det i fler tabeller?

Om du förklara mer av din datastruktur så kan vi hjälpa dig med en vettigare datastruktur.


Svara

Sv:Databasproblem

Postades av 2006-10-27 15:58:05 - Michael Bohman

Jo, det var en grej som råkade dyka upp som jag inte tänkt på. Det är så att jag administrerar och bygger min klubbs hemsida (www.ifkhalmstad.se) på fritiden. Och i databasen kan man lägga till alla som har någon funktion i klubben samt vilka som är tränare (checkbox). Vidare har jag gjort så att tränarna har en egen sida (sätter en gruppid i samma databas). Alla som har ett uppdrag kan logga och ändra vissa grejor som statistik, ladda upp dokument mm. Jag utgår, för tränarnas räkning, till vilket gruppid man har (detta lägger jag i ett session så att rätta rader i mina andra tabeller uppdateras korrekt).

Vad jag inte tänkte på är att en person kan vara tränare för flera grupper, utan jag antog att man endast är tränare i en grupp. En lösning som jag nu gjorde var att lägga en texsträng som separerade gruppid med ett kolon tecken. Jag läser av värdet genom en for loop och använder mig utav ToCharArray().

Mitt största problem är att när man som administratör ska ta bort eller uppdatera medlemmarna. Föst måste jag öppna databasen och läsa post för post. Om posten är tränare kontrollera då om han/hon är tränare i fler grupper. Man kanske lätt kan lösa detta med en undertabell?

//Michael


Svara

Sv: Databasproblem

Postades av 2006-10-27 20:27:48 - Andreas Hillqvist

Som jag tolkar det har din sida <i>medlemmar</i>, det finns grupper i vilket medlemar kan vara medlemmar samt att medlemmar kan ha roller.


Tabell: Members
Fields: MemberId in PK
Fields: MemberName varchar(20)
Fields: MemberPassword varchar(20)
Fields: MemberEMail varchar(50)

Tabell: Groups
Fields: GroupId int PK
Fields: GroupName varchar(50)
Fields: GroupRequierLogin boolean

Tabell: GroupMembers
Fields: MemberId int FK -> Members.MemberId
Fields: GroupId int FK ->Groups.GroupId
Fields: Trainer boolean

Med denna datastruktur kan du ha cascade deletes på dina FK. På så sätt kommer poster i GroupMembers tas bor om en medlem eller grupp tas bort.

Om du istället vill göra ett generell administration kan du:

Tabell: GroupMembers
Fields: MemberId int FK -> Members.MemberId
Fields: GroupId int FK ->Groups.GroupId
Fields: AllowRead boolean
Fields: AllowWrite boolean
Fields: AllowDelete boolean
osv...

På så sätt kontrollera om medlemmen får redigera den gruppen.


Svara

Sv:Databasproblem

Postades av 2006-10-28 08:29:07 - Michael Bohman

Japp, helt korrrekt tolkat. Jag har hållt på med hemsidan i 1 1/2 år så den har vuxit en bit och jag har lagt på mer funktionalitet, nya ideér har tillkommit. Allt är skrivit i .net 1.1 men nu tänker jag uppgradera hela sidan till v2.0 samt byta databas till MySQL (har haft access och inte helt problemfritt emellertid). Så nu i kväll har jag laddad hem visual express och en massa video lektioner som jag ska ögna igenom den närmaste tiden. Vad gäller databaskonstruktionen hade jag tänkt göra så att registrering ska kunna ske på ansvariga (tränare, styrelse etc i tre olika behörighetsnivåer till login), medlemmar (för framtida bruk) samt göra en webbkomponent till en online e-anmälan för våra tävlingar.

Så här ser nuvarande tabell ut...
Tabell: Members
Fält: Name
Fält: Level[1=admin,2=premium,3=basic ->Styr om till vilka menyer som ska visas)
Fält: Coach[Ja/Nej]
Fält: GroupID[Text] Grupp separeras med kolon
osv...

Tabell:GruppID
Fält: Count PK
Fält: GroupID int
Fält: Coaches varchar(50) Textsträng där tränare separeras av kolon

Jag har läst ditt förslag och det är precis det problem jag gått och funderad på vad gäller databaskonstruktionen. Vad jag är okunnig om är hur en
loginkontroll ska göras när det gäller roller och användare i .net2. Men jag får väl läsa på, hitintills så gör jag en direkt jämförelse med databasen och skickar till korrekt sida. Lösenord och anv sparar jag krypterat i databasen. Måste säga att utan pellesoft hade jag nog inte lärt mig så mycket, fått en hel del bra tips här...

//Micke


Svara

Sv: Databasproblem

Postades av 2006-10-28 10:55:01 - Andreas Hillqvist

Jag tycker engelska namn på datastrukturen är att föredra. Gärna unika fältnamn. Unika fältnamn åstakoms lätt med något prefix framför fältnamnet.

I min konvention döper jag tabelerna till plural av de de innehåller: Tabellen med medlemmar blir Members, tabellen med grupper blir Groups.
Prefidxet jag väljer för fälten är sigular av vad tabellen innehåller så fältet för namnet på en medlem blir MemberID.

Jag rekomenderar oxå att du använder räknare, autoinkrimiterande integers fält som primärnyckel.
Då dessa är effektivare än strängar i joins.

Mitt förslag på struktur är:

En medlemstabell vilket påminner om din:

Tabell: Members
Fält: MemberId int autoincre.
Fält: MemberName varchar(50)
Fält: MemberLevel int [1=admin,2=premium,3=basic ->Styr om till vilka menyer som ska visas)
Fält: MemberCoach boolean [Ja/Nej]
osv...

Har lagt till en räknar, MemberId, för att identifierar en främmande nyckel i andra tabeller.

Jag vet inte vad count hade för syfte, så jag tog bort den.

Tabell:Groups
Fält: GroupID int
Fält: GroupName
osv...

För att relatera medlemmar till grupper behöver du sedan en "länk"/"kopplingstabell", då det rör sig om en många till måna relation.

I denna tabbellen skulle man kuna låta de främmande nycklarna utgöra primärnyckeln. MEn det underlättar att ha ett fält som nyckel.

Tabell: GroupMembers
Fält: GroupMemberId
Fält: GroupMemberMember int FK -> Members.MemberId
Fält: GroupMemberGroup int FK -> Members.MemberId


Exempel data:

Members
MemberId, MemberName, MemberLevel, MemberCoach
100, "Adam Andersson", 1, true
101, "Berit Bengtsson", 2, true
102, "Carl Ceder", 3, false
103, "Diana Davidsson", 3, false
104, "Erik Eklund", 2, true
105, "Frida Fredriksson", 3, false
106, "Gustav Gran", 3, false

Groups
GroupID, GroupName
10, "Juniorer"
11, "Seniorer"


GroupMembers
GroupMemberId, GroupMemberMember, GroupMemberGroup
1, 100, 10
2, 100, 11
3, 101, 10
4, 102, 10
5, 103, 10
6, 104, 11
7, 105, 11
8, 106, 11

Detta är en förening med 7 medlemmar. Ordförande och administratör i föreningen är Adam Andersson som oxå hoppar in som tränare ibland.
Föreningen består av två grupper:
*Juniorer och
* Seniorer.
Till Juniorerna hör:
* Berit Bengtsson vilket är tränaren
* Carl Ceder,
* Diana Davidsson
Till Senioreran hör:
* Erik Eklund vilket är tränaren
* Frida Fredriksson
* Gustav Gran


Svara

Sv:Databasproblem

Postades av 2006-10-29 13:30:40 - Michael Bohman

Ok...eftersom jag ändå tänkt lägga över till .ned2 så ändrar jag namnen i databasen och ser över strukturen. Jag tackar ödmjukast för ditt tips.

Jag funderar även på en annan sak, nämligen hur datan med tränarna ska presenteras. På www.ifkhalmstad.se under träning/gruppindelning ser man hur mitt upplägg ser ut just nu och så vill jag ha det. Jag änvänder mig utan nästlad datagrid där och under rubriken tränare är alla tränare listade i en post i databasen från Tabell:GruppID. Om man nu stoppar alla tränarna från members till en undertabell hur gör man för att i .net lägga alla namnen i en textsträng, de finns ju i flera poster?

//Michael


Svara

Sv: Databasproblem

Postades av 2006-10-29 16:54:51 - Andreas Hillqvist

Varför inte presentera det som en lista?
T.ex. För att lägga till ta bort grupper för en tränare borde du kunna använda CheckboxList eller nåt liknande.


Svara

Sv:Databasproblem

Postades av 2006-10-29 19:21:14 - Michael Bohman

Ja det löser sig nog, nu ska jag ögna igenom lite toturials och läsa på. Tack för hjälpen!

MVH
Michael


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

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 569 600
27 953
271 705
4 050
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