在网上搜索了大量内容后,我找不到任何我正在寻找的东西,也找不到概述如何与用户一起创建 Web 应用程序的内容。我能找到的最接近的东西是 this stackoverflow post ,其中概述了如何在 SQL 服务器上创建具有用户/角色的 Web 应用程序。
我还从 this post 中找到了几个替代品.
- 创建一个简单的关系数据库
- 制作一个“元表”
我正在 CodeIgniter 上创建一个 Web 应用程序,它是一个 Wine 管理工具,类似于 CellarTracker .每个用户都有自己的“酒窖”,或者他们可以对其执行 CRUD 操作的 Wine 集合。做这个的常规方法是什么。我应该如何构建数据库?是否有任何 CI 库可以使用户管理、角色、权限等更容易? (我已经发现 TankAuth 似乎是最好的身份验证库)。
以下是我构建(部分)数据库的方式:
**users_table**
id
email
password
**wines_table**
id
user_id
我的计划是让每瓶酒都有一个与之关联的用户 ID。我怀疑这是处理具有许多用户的 CRUD Web 应用程序的最安全或最有效的方法。
我有 CRUD 操作的经验,但不确定如何将它们与用户管理系统连接起来。
最佳答案
考虑为与用户无关的 Wine 设置一个完全独立的表格。
此 table 有酒亲子。父项包含酿酒厂的字段、 Wine 的名称、位置等。子项将是年份的特定年份。
所以用户在他的跟踪器中输入了一个酒名。系统查找 - 如果未找到,则用户创建记录。系统使用年份创建一个父记录和一个单独的子记录。
如果找到了 Wine - 那么用户可以更新父记录,然后选择年份或输入新年份。
系统然后会在一个单独的表中添加一条记录 - users_wines - 其中包含父项(酒)的 ID 和子项的 ID(特定年份)
这开辟了许多不同的可能性,包括拥有由用户组共享的酒单。
您还可以轻松地改变用户和他的酒瓶的关系——因为它们是分开的。用户可以更改 users_wines 的状态——酒窖中的酒、饮用的酒、空酒瓶——这不会影响酒本身的记录。
==== 编辑 - 是的,提到 wine.com api 会是很好的信息。这就涉及到更大的问题。建议您首先定义您的用户能够做什么。我的第一个问题是——如果用户不喜欢从 wine.com 返回的名称怎么办?如果 api 中存在实际错误怎么办? 您是否要向客户服务提供从 api 返回的错误 Wine 名称?
或者 - 用户可以重命名他们列表中的 Wine 吗?如果他们可以,那么与 wine.com 的数据关系将大不相同。
我个人认为尝试创建酒单会很烦人,但您不能编辑名称。似乎那是从用户那里删除了太多的控制权。
但是,如果这是一款适用于需要问责制的餐厅的应用程序,那么让酒名不可更改可以被视为一项功能。
所以花一些时间了解您的用户角色和用户故事。然后让它通知数据关系。
关于php - 最佳实践 : Creating a simple CRUD web application with users/roles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18135668/