Untitled

mail@pastecode.io avatar
unknown
pgsql
a year ago
2.4 kB
2
Indexable
Never
-- Create the database
CREATE DATABASE IfiFociBajnoksag;

-- Switch to the new database context
\c IfiFociBajnoksag;

-- Create the tables for teams, players, matches, and match events
CREATE TABLE Csapatok (
    CsapatID SERIAL PRIMARY KEY,
    Nev VARCHAR(255),
    Szekhely VARCHAR(255)
);

CREATE TABLE Jatekosok (
    JatekosID SERIAL PRIMARY KEY,
    Nev VARCHAR(255),
    CsapatID INT REFERENCES Csapatok(CsapatID)
);

CREATE TABLE Meccsek (
    MeccsID SERIAL PRIMARY KEY,
    Datum TIMESTAMPTZ,
    Eredmeny VARCHAR(255)
);

CREATE TABLE MeccsEsemenyek (
    EsemenyID SERIAL PRIMARY KEY,
    MeccsID INT REFERENCES Meccsek(MeccsID),
    Leiras VARCHAR(255),
    Idopont TIMESTAMPTZ
);

-- Create roles
CREATE ROLE Edzo;
CREATE ROLE Jatekvezeto;
CREATE ROLE MLSzEllenor;

-- Create logins and database users for roles
CREATE USER EdzoUser WITH PASSWORD 'EdzoJelszo';
GRANT Edzo TO EdzoUser;

CREATE USER JatekvezetoUser WITH PASSWORD 'JatekvezetoJelszo';
GRANT Jatekvezeto TO JatekvezetoUser;

CREATE USER MLSzEllenorUser WITH PASSWORD 'MLSzEllenorJelszo';
GRANT MLSzEllenor TO MLSzEllenorUser;

-- Insert some demo records into the teams table
INSERT INTO Csapatok (Nev, Szekhely)
VALUES
    ('Csapat A', 'Szekhely A'),
    ('Csapat B', 'Szekhely B');

-- Check the permissions for Edzo, Jatekvezeto, and MLSzEllenor roles
-- Example: Grant and deny permissions as needed for each role

-- Edzo role permissions
GRANT SELECT ON TABLE Csapatok TO Edzo;
GRANT SELECT ON TABLE Jatekosok TO Edzo;
GRANT SELECT ON TABLE Meccsek TO Edzo;
GRANT SELECT ON TABLE MeccsEsemenyek TO Edzo;

-- Jatekvezeto role permissions
GRANT INSERT, UPDATE, DELETE ON TABLE MeccsEsemenyek TO Jatekvezeto;

-- MLSzEllenor role permissions
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE Csapatok TO MLSzEllenor;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE Jatekosok TO MLSzEllenor;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE Meccsek TO MLSzEllenor;
GRANT SELECT, INSERT, UPDATE, DELETE ON TABLE MeccsEsemenyek TO MLSzEllenor;

-- Recommended indexes for tables to improve query performance
-- Example: Create indexes for specific columns as needed

-- Index for Csapatok table on CsapatID column
CREATE INDEX idx_Csapatok_CsapatID ON Csapatok (CsapatID);

-- You can create additional indexes as required for your specific queries

-- End of the script