Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Baza notowań akcji, jak najlepiej?
Blackhole
post
Post #1





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Witam smile.gif
Chciałbym zrobić bazę danych zawierającą notowania niektórych spółek dostępnych na GPW. Mam teraz dylemat, jak ułożyć strukturę tej bazy. Dla każdej spółki będą w bazie takie kolumny:
Cytat
data (date) | cena_otw (float) | cena_min (float) | cena_max (float) | cena_zamkn (float) | zmiana% (float) | wolumen (int)
Logiczne wydaje się chyba, by każda spółka miała oddzielną tabelę. Ale może macie jakiś pomysł na lepszą strukturę :?:
Będę wdzięczny za proozycje.

Ten post edytował Blackhole 16.02.2005, 16:32:32


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 11)
mhs
post
Post #2





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


hmm a nie zrobic relacji jeden do wielu pomiedzy (co najmniej) dwoma tabelami:

spolki |-------------->| notowania


gdzie w tabeli beda trzymane dane dot. samej spolki a w tabeli notowania -> notowania gieldowe wszystkich spolek?


EDIT:
poza tym w projekcie Twoim masz zmiana% (float) - to jest pole wyliczane, ktorego raczej nie powinno byc w tabeli

Ten post edytował mhs 16.02.2005, 16:33:54
Go to the top of the page
+Quote Post
Blackhole
post
Post #3





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Mógłbyś sprecyzować?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
mhs
post
Post #4





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


tak, tylko jak bede w domu (gdzies okolo godziny 22) gdyz za chwileczke wychodze z pracy i w tej chwili nie mam juz czasu...

edit:


generalnie myslalem o czyms takim:

tabela 1)

spolki:
============
spolka_id
nazwa
data_zalozenia
-- pozostale...


tabela 2)

notowania:
============
notowanie_id
spolka_id
data
cena_otw
cena_min
cena_max
cena_zamkn
wolumen (int)

Ten post edytował mhs 17.02.2005, 16:06:57
Go to the top of the page
+Quote Post
Blackhole
post
Post #5





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


A co miałaby zawierać kolumna "notowanie_id" :?:


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
mhs
post
Post #6





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


klucz podstawowy dla tabeli notowania
Go to the top of the page
+Quote Post
Blackhole
post
Post #7





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


A czy nie uważasz, że będzie niemały bałagan w tej tablicy notowania, skoro będzie ona tak duża?


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #8





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Ja uwazam taka budowe tabel za odpowiednia -- sam taka robilem i dzialalo.

W jaki sposob tabela notowania jest "tak duza"? Pomysl co by bylo przy X (stu?) tabelach po jednej dla kazdej firmy).

Dla ponad 100k rekordow wyszukanie najwyzszego kursu dla kazdej ze spolek zajmuje mi (na slabym sprzecie) 0.5 sekundy.


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
mhs
post
Post #9





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

Ostrzeżenie: (0%)
-----


odpowiadajac na Twoje pytania mowie "nie"


(...)


a czy Wg. Ciebie w bazie danych bedziesz mial porzadek w sytuacji gdy bedziesz mial 100 lub wiecej tabel, a w kazej tabeli bedziesz przechowywal info dotyczace spolek i notowan?

jak pozniej z bazy danych bedziesz wyciagal dane dotyczace np. sumy wolumenu dla wszystkich spolek w danym dniu (lub jakiej dane w przeciągu miesiąca)? oczywiscie, sposob w jaki Ty proponujesz takie dane da sie wyciagnac, ale stopien skomplikowania takiego zadania jest znacznie wiekszy i pewnie nie obejdzie sie bez kilku (...dziesieciu, ...set) zapytan do bazy danych i koniecznosci "obrobienia" tego w jakims jezyku programowania....
Go to the top of the page
+Quote Post
Blackhole
post
Post #10





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Ok. Wielkie dzięki za Wasze uwagi smile.gif

dr_bonzo, czy mógłbyś przedstawić, jak Ty to masz zrobione? Z Twojego postu wnioskuję, że masz już gotowe to, do czego ja się dopiero zabieram.


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Moja baza odnosila sie do kursow fikcyjnych spolek ---> jottonia.no.
  1. # Table: 'companies'
  2. #
  3. CREATE TABLE `companies` (
  4. `ID` int(4) UNSIGNED NOT NULL AUTO_INCREMENT,
  5. `CID` int(4) UNSIGNED NOT NULL DEFAULT '0',
  6. `name` varchar(255) NOT NULL DEFAULT '',
  7. PRIMARY KEY (`ID`,`CID`)
  8. ) TYPE=MyISAM;
  9.  
  10. # Table: 'stocks_data'
  11. #
  12. CREATE TABLE `stocks_data` (
  13. `ID` int(9) UNSIGNED NOT NULL AUTO_INCREMENT,
  14. `CID` int(4) UNSIGNED NOT NULL DEFAULT '0',
  15. `date_time` int(11) UNSIGNED NOT NULL DEFAULT '0',
  16. `value` float NOT NULL DEFAULT '0',
  17. PRIMARY KEY (`ID`,`CID`,`date_time`)
  18. ) TYPE=MyISAM;


To jest struktura bazy w MySQLu.

CID to jest ID spolki, ID -- id wpisu -- troche zamieszane, dawno nie uzywalem tej bazy i nie pamietam po co to dodatkowe pole -- mhs podal wlasciwa strukture


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
Blackhole
post
Post #12





Grupa: Zarejestrowani
Postów: 283
Pomógł: 1
Dołączył: 15.11.2004
Skąd: Mikołów

Ostrzeżenie: (0%)
-----


Dzięki, dr_bonzo.

Powiedzcie mi jeszcze, po co klucz podstawowy w tabeli "notowania" :?: Wydaje mi się, iż wystarczy klucz unikatowy w postaci pary (data, spolka), gdzie data to wiadomo co, a spolka to dowiązanie do tablicy "spolki" zawierającej informacje o spółkach.

---- Dodane ----
Przy tworzeniu tabeli "notowania" psql sam utworzył mi indeks. Czy w związku z tym dodanie przeze mnie indeksu - jako dodatkowej kolumny - jest potrzebne :?:

Ten post edytował Blackhole 18.02.2005, 16:38:51


--------------------
Ściskam prawicę...
Jacek

http://doscniewoli.pl/ - wszyscy jesteśmy niewolnikami bankierów!
http://jezusimarlena.ovh.org/
YouTube - Egzorcyzmy Anneliese Michel
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 04:49