簡體   English   中英

mysql數據庫和多個用戶

[英]mysql database and multiple users

我正在一個將有多個用戶的網站上工作。 假設總共有5個用戶。我需要確保的是,每個用戶只能訪問他們輸入的數據。

考慮一下CRM或工作委員會。 因此,john將只能訪問johns信息,進行編輯,添加等。與jane和june相同。

現在,如果我的閱讀是正確的,我所要做的就是確保查詢僅根據其唯一ID正確提取數據嗎?

因此,用戶的數據庫表如下所示:

Database: xxxxx, Table: xh_user
user_id 
user_username
user_fname
users_email
users_password 
users_salt

因此,如果johns user_id為7,則當他登錄時,它將查詢其id並僅顯示數據庫中的內容。

我對此是否正確?或者是否有其他或更好的方法來實現這一目標?

只要正確設置了外鍵,以便將數據鏈接到user_id (PK)就可以了。 另外,您可以設置一個包含訪問權限的user_roles表。

據我所知以及如何編程,是的。 如果您正在尋找額外的安全性,也許對照數據庫中的內容檢查用戶的密碼/鹽。

li需要做的是確保查詢僅根據其唯一ID提取數據

我不確定您的意思是什么,但這太籠統了,不管是好是壞。 這實際上取決於您正在構建的系統。 這絕不是一般適用的聲明。

現在,在您當前的設置中,這看起來有些正確,但是從長遠來看,您可能需要一些數據是公開的,或者至少需要幾個人可以訪問。 在您當前的設計中這是不可能的。

我將訪問權限和內容分開,因為它們是分開的東西。 保存哪些用戶(或查找基於角色的模式)可以訪問單獨表中的哪些數據,因此您可以在以后的數據上進行構建,並添加多個用戶功能。

這可能是一個漫長的討論,因此我將以以下內容結束:所有數據庫設計的底線是,您應該以代表邏輯單元的方式保存信息,就像在現實世界中一樣(是的,我正在一些快捷方式)。 因此,將用戶名與ID耦合似乎是正常的。 但是,在工作和用戶之間建立聯系本身並不是那么合理。 一項工作對多個用戶可見,不費吹灰之力。 或者一個用戶可能已經添加了該信息。 您可以說只有1個用戶是作業或任何其他數據的“所有者”,但是似乎過於嚴格以至於無法完全由誰“擁有”數據來進行訪問控制。

但是話又說回來,這只是對未來的警告。 如果您從不需要,則不需要。

您可以有多個數據庫,每個用戶一個。 不過,您將需要一種方法來進行架構更改和升級,例如phinx。 除非您預見到用戶擁有多個自己帳戶的用戶,否則我不建議您這樣做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM