[英]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.