Json Daten nur neuste Daten speichern

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
ahupfer
User
Beiträge: 7
Registriert: Mittwoch 15. August 2018, 07:24

Freitag 14. September 2018, 08:53

Hallo Zusammen

Ich habe eine generelle Frage (Methode, design). Über einen Request hole ich mir folgende Daten mittels
REST API von EvE Online (MMO Spiel):

Code: Alles auswählen

{
date*	string($date)
title: get_characters_character_id_mining_date
date string
quantity*	integer($int64)
title: get_characters_character_id_mining_quantity
quantity integer
solar_system_id*	integer($int32)
title: get_characters_character_id_mining_solar_system_id

solar_system_id integer
type_id*	integer($int32)
title: get_characters_character_id_mining_type_id

type_id integer
}]
Es kommen immer alle Einträge der Letzen 30 Tage. Ich möchte aber in der Datenbank beim 31 Tag nur den neusten
Tag speichern. Also ein Update machen. Wie bewerkstellige ich dies?
Ich bin Python Anfänger, würde es aber mit meinen jetzigen Skills wahrscheinlich irgendwie hinbekommen (Datumsüberprüfung, speichern
des Timestamp beim update oder so). Ich möchte nur wissen was hier das "best practices" ist?

Wenn die Daten eine eindeutige ID hätten, könnte ich dann dies über die 'unique' Einstellung auf dem entsprechenden Datenfeld machen
sodass der Datensatz bei doppelter ID in der Datenbank gar nicht gespeichert wird?

Danke für kurze Hinweise
Andreas
Sirius3
User
Beiträge: 8611
Registriert: Sonntag 21. Oktober 2012, 17:20

Freitag 14. September 2018, 09:54

Wenn das Datum eindeutig ist, dann hast Du bereits einen unique key.
ahupfer
User
Beiträge: 7
Registriert: Mittwoch 15. August 2018, 07:24

Freitag 14. September 2018, 11:10

Es werden können aber mehrere Datensätze mit unterschiedlichen typ_id's und solar_system_id's pro Tag erstellt werden.
__deets__
User
Beiträge: 3713
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 14. September 2018, 11:40

Dann hast du doch mit diesen 3 deinen Schlüssel?
ahupfer
User
Beiträge: 7
Registriert: Mittwoch 15. August 2018, 07:24

Freitag 14. September 2018, 12:49

Du meinst einen Schlüssel aus den dreien bilden? Ist aber auch nicht uniqe das Datum und die id's können sich einmal pro Jahr wiederholen.
Benutzeravatar
__blackjack__
User
Beiträge: 1448
Registriert: Samstag 2. Juni 2018, 10:21

Freitag 14. September 2018, 12:53

@ahupfer: Ich denke mal bis eben ist jeder Davon ausgegangen das ein Datum aus Jahr, Monat, und Tag besteht. Und das Du das in einer als DATE deklarierten Spalte in einer relationalen Datenbank speicherst. Ist *die* Annahme auch falsch?

Code: Alles auswählen

    **** COMMODORE 64 BASIC V2 ****
 64K RAM SYSTEM  38911 BASIC BYTES FREE
   CYBERPUNX RETRO REPLAY 64KB - 3.8P
READY.
█
__deets__
User
Beiträge: 3713
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 14. September 2018, 13:08

Ich finde dieses 20-Fragen-Ding ein bisschen oede. Warum zeigst du nicht, was du fuer Daten hast, anstatt uns rumraten zu lassen, was gehen koennte und dann zu sagen "nein, DAS geht doch auch nicht".
ahupfer
User
Beiträge: 7
Registriert: Mittwoch 15. August 2018, 07:24

Freitag 14. September 2018, 15:02

__deets__ hat geschrieben:
Freitag 14. September 2018, 13:08
Ich finde dieses 20-Fragen-Ding ein bisschen oede. Warum zeigst du nicht, was du fuer Daten hast, anstatt uns rumraten zu lassen, was gehen koennte und dann zu sagen "nein, DAS geht doch auch nicht".
Du hast natürlich recht! Ich konnte keine Daten liefern, weil ich noch keine auf meinem Account habe. Hier aber ein Beispiel von 2017 der Json daten.
So kann ich nat¨ürlich aus den Daten einen Key bilden. Somit ... glaube ich ... ist meine Frage beantwortet.

Code: Alles auswählen

[
    {
        "date": "2017-09-21",
        "solar_system_id": 30002537,
        "type_id": 1227,
        "quantity": 5092
    },
    {
        "date": "2017-09-22",
        "solar_system_id": 30002537,
        "type_id": 1227,
        "quantity": 408
    },
    {
        "date": "2017-09-23",
        "solar_system_id": 30002537,
        "type_id": 1227,
        "quantity": 1872
    },
    {
        "date": "2017-09-24",
        "solar_system_id": 30002537,
        "type_id": 1227,
        "quantity": 432
    },
    {
        "date": "2017-09-21",
        "solar_system_id": 30002537,
        "type_id": 1228,
        "quantity": 1000
    },
    {
        "date": "2017-09-21",
        "solar_system_id": 30002538,
        "type_id": 1227,
        "quantity": 1000
    }
]
Sirius3
User
Beiträge: 8611
Registriert: Sonntag 21. Oktober 2012, 17:20

Samstag 15. September 2018, 11:26

@ahupfer: das Datum enthält das Jahr. Damit ist date solar_system_id und type_id zusammen ein eindeutiger Schlüssel.
Antworten