Rumah >pangkalan data >tutorial mysql >Bagaimana untuk mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan fungsi kebenaran data?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan fungsi kebenaran data?

PHPz
PHPzasal
2023-10-31 11:23:06996semak imbas

Bagaimana untuk mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan fungsi kebenaran data?

Bagaimana untuk mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan fungsi kebenaran data?

Ikhtisar:
Dalam banyak aplikasi, kebenaran data merupakan keperluan fungsi yang penting. Kebenaran data digunakan untuk menyekat akses dan operasi pengguna kepada data untuk memastikan keselamatan dan pematuhan data. Dalam MySQL, kita boleh mencapai fungsi ini melalui reka bentuk struktur jadual yang sesuai dan kawalan kebenaran data. Artikel ini akan memperkenalkan cara mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan kebenaran data, dan memberikan contoh kod khusus.

Reka bentuk struktur jadual:
Apabila mereka bentuk struktur jadual MySQL, faktor utama berikut perlu dipertimbangkan:

  1. Jadual pengguna (jadual_pengguna): Jadual ini digunakan untuk menyimpan maklumat pengguna dalam sistem, termasuk ID pengguna, nama pengguna , dan kata laluan tunggu.
    BUAT JADUAL jadual_pengguna (user_table (
    user_id INT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    password VARCHAR(50) NOT NULL
    );
  2. 角色表(role_table):该表用于存储系统中的角色信息,包括角色ID和角色名称。
    CREATE TABLE role_table (
    role_id INT PRIMARY KEY,
    role_name VARCHAR(50) NOT NULL
    );
  3. 资源表(resource_table):该表用于存储系统中的资源信息,包括资源ID和资源名称。
    CREATE TABLE resource_table (
    resource_id INT PRIMARY KEY,
    resource_name VARCHAR(50) NOT NULL
    );
  4. 权限表(permission_table):该表用于存储角色和资源的关联关系,即角色拥有哪些资源的权限。
    CREATE TABLE permission_table (
    role_id INT,
    resource_id INT,
    PRIMARY KEY (role_id, resource_id),
    FOREIGN KEY (role_id) REFERENCES role_table(role_id),
    FOREIGN KEY (resource_id) REFERENCES resource_table(resource_id)
    );

代码示例:
以下是一个简单的示例代码,用于演示如何将用户、角色和资源关联起来,并通过权限表来实现数据权限控制。

  1. 插入用户、角色和资源数据:
    INSERT INTO user_table (user_id, username, password)
    VALUES (1, '张三', '123456');

INSERT INTO role_table (role_id, role_name)
VALUES (1, '管理员');

INSERT INTO resource_table (resource_id, resource_name)
VALUES (1, '文件1'), (2, '文件2'), (3, '文件3');

  1. 分配角色给用户:
    INSERT INTO permission_table (role_id, resource_id id_pengguna KUNCI UTAMA INT,
    nama pengguna VARCHAR(50) BUKAN NULL,
  2. kata laluan VARCHAR(50) NOT NULL
  3. );

    Role table (role_table): Jadual ini digunakan untuk menyimpan maklumat peranan dalam sistem, termasuk ID peranan dan nama peranan.
    BUAT JADUAL jadual_peranan (
    id_peranan KUNCI UTAMA INT,
    nama_peranan VARCHAR(50) BUKAN NULL
    );
jadual sumber (jadual_sumber) : Jadual ini digunakan untuk menyimpan maklumat sumber dalam sistem, termasuk ID sumber dan nama sumber.

BUAT JADUAL jadual_sumber (
id_sumber KUNCI UTAMA INT,

nama_sumber VARCHAR(50) BUKAN NULL🎜);🎜🎜Jadual kebenaran (jadual_kebenaran) : Jadual ini digunakan untuk menyimpan hubungan antara peranan dan sumber, iaitu kebenaran sumber yang dimiliki oleh peranan tersebut. 🎜BUAT JADUAL jadual_kebenaran (🎜 role_id INT,🎜 resource_id INT,🎜 PRIMARY KEY (role_id, resource_id),🎜 FOREIGN KUNCI (role_id) RUJUKAN role_table(role_id),🎜 FOREIGN KEY (resource_id kod> kod>) RUJUKAN resource_table(resource_id)🎜);🎜🎜🎜Contoh kod: 🎜Berikut ialah contoh kod mudah untuk menunjukkan cara menggabungkan pengguna, peranan dan sumber Kaitkan mereka dan laksanakan kawalan kebenaran data melalui jadual kebenaran. 🎜🎜🎜Masukkan data pengguna, peranan dan sumber: 🎜MASUKKAN KE DALAM jadual_pengguna (id_pengguna, nama pengguna, kata laluan) 🎜NILAI (1, '张三', '123456');🎜🎜🎜MASUKKAN KE DALAM jadual_peranan (id_peranan, nama_peranan)🎜VALUES ( 1, 'Pentadbir');🎜🎜MASUKKAN KE DALAM jadual_sumber (id_sumber, nama_sumber)🎜VALUES (1, 'Fail 1'), ( 2, 'Fail 2'), (3, 'Fail 3');🎜
    🎜Tugaskan peranan kepada pengguna: 🎜MASUKKAN KE DALAM permission_table (role_id, <code>resource_id)🎜VALUES (1, 1), (1, 2), (1, 3);🎜🎜Soal kebenaran pengguna tentang sumber: 🎜SELECT r.role_name, res 🎜DARI jadual_pengguna u🎜SERTAI jadual_keizinan p DIHIDUPKAN u.role_id = p.role_id🎜SERTAI role_table r HIDUP p.role_id = r.role_id🎜SERTAI resource_table res HIDUP p.resource_id = res.resourceWHERE = uhang ;🎜🎜🎜Kesimpulan:🎜Melalui reka bentuk di atas, kami boleh mencapai kawalan kebenaran data berasaskan peranan. Dengan mengaitkan pengguna, peranan dan sumber secara munasabah serta menggunakan jadual kebenaran untuk memberikan kebenaran, kami boleh mengawal akses dan operasi pengguna pada data secara fleksibel. Di atas hanyalah contoh mudah Keadaan sebenar mungkin lebih rumit, tetapi idea keseluruhannya adalah sama. Saya harap artikel ini telah memberikan sedikit bantuan untuk anda mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan fungsi kebenaran data. 🎜

Atas ialah kandungan terperinci Bagaimana untuk mereka bentuk struktur jadual MySQL yang dioptimumkan untuk melaksanakan fungsi kebenaran data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn