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 (IMG:http://forum.php.pl/style_emoticons/default/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
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ć?
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" :?:
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?
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.
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 (IMG:http://forum.php.pl/style_emoticons/default/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.
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
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
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 12:27