Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Hugo Hörnquist
Stupan
Commits
a886e54d
Commit
a886e54d
authored
Feb 16, 2018
by
Hugo Hörnquist
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of git.lysator.liu.se:hugo/Stupan
parents
045572b2
197a15ca
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
197 additions
and
0 deletions
+197
-0
databas.org
databas.org
+197
-0
No files found.
databas.org
0 → 100644
View file @
a886e54d
* Angående systemet
Systemet stödjer rent teknikt sätt produkter med NULL lager.
Dock skapar de för mycket förvirring för använderen. Och bör
därför inte användas.
* Angående det här dokumentet
Det här dokumentet dokumentarer hur databasen ser ut.
För nuvarande är den här texten helt handskriven, och
tabellerna nedan är inte grund för tabellerna i databasen.
Se [[file:create-db.sql][SQL-fiLen]] för faktisk data.
Jag är även medveten om att dokumentet är på fantastiks
svengelska. Men då även kassasystemet i all sin kasshet
är på svengelska ser inte jag det som ett probem.
* Att göra
Inga views eller triggers är för nuvarande dokumenterade.
Lika så finns det ingen förklaring av de insert's och delete's
vilka ligger i slutet av sql filen.
En bättre förklaring av många fält skulle nog också behövas.
Kapitlett om utdrag av data ska också utökas något ordentligt.
Dock känner jag ett behov av att läsa texten [[http://www.bfn.se/sv/informationsmaterial/att-fora-bok][Att föra bok]].
Det här bör dessutom få ett ordentligt index, så att den kan
sökas i. Värt att notera att det möjligen skulla vara en poäng
att typsätta om allting i texinfo direkt. Istället för min
nuvarande aproach med org-mode konverterat till texinfo.
* SQL
Här är alla tabeller, views, triggers och annat.
Tabellerna är uppdelade i /propper/ och /temp/, där propper är
de vilka faktiskt håller data. Och temp enbart finns för att
låta klienter slå ihop flera handlingar och skicka dem för
förvaring samtidigt.
** Proper Tables
*** products
Including name and sale price, but not stock
| name | type | default | other |
|-------------+---------+-------------+----------------------|
| id | integer | | primary key not unll |
| sorting_id | integer | 0 | |
| buy_id | integer | | |
| bar_code | text | | unique |
| name | text | "CHANGE ME" | not null |
| price | integer | 0 | not null |
| sale_status | integer | 1 | |
**** Sale status
- -1 :: system, not currently used
- 0 :: For Sale
- 1 :: Not For Sale
- 2 :: Hidden
*** stock
amonut in stock. Supports multiple storage location,
via different columns. Only *active* is used.
| name | type | default | other | references |
|------------+---------+---------+----------------------+--------------|
| product_id | integer | | primary key not null | products(id) |
| active | integer | 0 | | |
| storage | integer | 0 | | |
*** log
Log of everything sold
| name | type | default | other | references |
|------------+-----------+-------------------+----------------------+--------------|
| id | integer | | primary key not null | |
| product_id | integer | | | products(id) |
| time | TIMESTAMP | CURRENT_TIMESTAMP | not null | |
| price | INTEGER | | NOT NULL | |
*** Notes
Legend says there once was a type of file called /text file/,
The historians know little about these magical items.
*** Money
This is a state table, so it's one of the few places with mutable
data.
| name | type | default | other |
|--------+---------+---------+----------------------|
| id | integer | | primary key not null |
| name | text | | unique |
| amount | integer | 0 | |
*** money_diffs
För diffar i penga-konton.
| name | type | default | other | foreign |
|----------+-----------+-------------------+----------------------+-----------|
| id | integer | | primary key not null | |
| expected | integer | | not null | |
| actual | integer | | not null | |
| account | integer | 0 | not null | money(id) |
| time | timestamp | CURRENT_TIMESTAMP | not null | |
*** Money_transfers
När pengar går från ett konto till ett annat.
Notera att det är även här pengar som tillkommer och lämnar systemet
bokförs. Då med /yttre värden/ som konto Nr _0_, vilket inte håller
koll på mängden pengar i sig.
| name | type | default | other | references |
|----------+-----------+-------------------+----------------------+------------|
| id | integer | | primary key not null | |
| change | integer | | not null | |
| from_acc | integer | | not null | money(id) |
| to_acc | integer | | not null | money(id) |
| time | timestamp | CURRENT_TIMESTAMP | not null | |
| note | TEXT | | | |
*** acquisitions
Data över allting som köps in till systemet.
| name | type | default | other | references |
|------------+-----------+-------------------+----------------------+--------------|
| id | integer | | primary key not null | |
| time | timestamp | CURRENT_TIMESTAMP | NOT NULL | |
| product_id | INTEGER | | NOT NULL | products(id) |
| item_price | INTTEGER | 0 | | |
| amount | INTEGER | 0 | | |
*** stock_diff
Felaktigheter i lagret
| name | type | default | other | references |
|------------+-----------+-------------------+----------------------+--------------|
| id | integer | | primary key not null | |
| product_id | integer | | not null | products(id) |
| expected | integer | 0 | not null | |
| actual | integer | 0 | not null | |
| time | timestamp | CURRENT_TIMESTAMP | not null | |
*** drainage
Tömningssystemet
| name | type | default | other |
|-------------------+-----------+-------------------+------------------------------------------|
| id | integer | | primary key autoincrement [fn:1]not null |
| start_time | timestamp | CURRENT_TIMESTAMP | NOT NULL |
| end_time | TIMESTAMP | CURRENT_TIMESTAMP | NOT NULL |
| decrease | INTEGER | 2 | NOT NULL |
| how_often_minutes | INTEGER | 60 | NOT NULL |
| min_price | INTEGER | 5 | NOT NULL |
*** my_db_settings
Internal settings for this database.
These are mostly here to toggle between transfer mode and
delete mode for the temp tables
| name | type | other |
|-------+---------+----------------------|
| id | INTEGER | PRIMARY KEY NOT NULL |
| name | TEXT | NOT NULL |
| value | | |
** Temp tables
*** big_buy
Temporary table, when multiple things are to be bought at the
same time.
*** acuititions_temp
Liknande ide som big_buy, temporär tabell för inmatning till
acquisitions. Finns egentligen bara för klienternas skull.
*** stock_diff_temp
Samma sak igen
* Informationsutdrag
Eftersom all data är i SQL så kan man få ut ganska mycket
information om den i efterhand.
** Kvittolista
Kvitton på inköp löses enklast ut i två steg.
Först plockar man en lista på alla kvitton som finns i systemet.
Querien ska uppdateras för att få tidsstämpelsformatering enligt
ISO-8601. Samt ska jag bestämma hur jag gör med tidszoner.
Blir lokal är UTC. Beroende på hur jag känner när jag implementerar
det.
#+BEGIN_SRC sql
SELECT * FROM acquisitions ORDER BY time GROUP BY time;
#+END_SRC
För att sedan få inehållet i ett specifikt kvitto kör man
#+BEGIN_SRC sql
SELECT * FROM acquisitions WHERE time = ?;
#+END_SRC
* Footnotes
[fn:1] =AUTOINCREMENT= här av okänd anledning.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment