Python Flask SQl Alchemy / SQLite database design -


i'm designing application on flask using bootstrap , various flask plugins view hosting on heroku. app modern punch card . employees can log in , clock in , out shift , view they've worked in past weeks , months , estimation of how money they've earnt during times. db going exportable via text file admin.

i've managed code login , register functionality save user input database i've created using alchemy.

however base function of app i'm struggling , i'm not great databases. each user should able login , clock in start working shift / clock out , view reports of previous day's worked .

i can't seem find way ensure when user logs in , clocks in or out , creates hour object save table specific user no 1 user or admin can see?

i post code first thing tomorrow issue summarised :

i can't seem work out how ensure user logged in creates data relates him/herself can't viewed other users ( it's own hours peers don't need see ) . have tried setting fk user id no avail cant seem link tables .

i know using sqlite db potentially cause issues when deploy heroku , use postgresql instead.

create table log when users clock in , clock out, id field (primary key), action field (clock in or out) , date time field; create table, secondary user , logging table, 2 columns: user_id , logging_id, foreign keys users.id , logging.id respectively.

you need map them know how in flask-sqlalchemy (for "secondary" table need use db.table function, not create class; @ unrelated example: need map 'logging_users' secondary table 'roles_users' in example.)

then need create relationship between classes: user class add

logging = db.relationship ('logging', secondary=logging_users,                                backref=db.backref('users', lazy='dynamic')) 

now every user instance have associated 'logging' field, list contains every logging instance associated specified user. can add logging instance user append logging field, every list element; example:

log = logging(action='enter', datetime='2017-04-04t08:14:23') current_user.append(log) 

i hope i'm clear!


Comments