gpt4 book ai didi

mysql - 数据库设计: Custom data layout and rights management

转载 作者:行者123 更新时间:2023-11-29 06:06:58 24 4
gpt4 key购买 nike

我正在为我的大学开展一个项目,我对我当前的数据库设计有点好奇:

首先,数据库表的常见命名实践是什么:单数还是复数?我曾经读过一些关于我的东西,但我不记得了?! (例如表:用户或用户)

第二个问题对于项目来说更加具体:

用户可以登录网站,必须从列表中选择 10 个元素,并为每个元素附加 1 到 4 的优先级。我的第一个尝试是将用户的选择保存在单行中作为CSV(例如 1,2,3;4,5,6;7,8;9,10,表示选择优先级为 1 的元素 1,2,3 等)。第二次尝试是将每个选择保存为单个条目,例如:[user_id]|[choosen_element]|[choosen_priority]。您认为更好的变体是什么,或者是否有我没有想到的更好的变体?

第三个问题更多关于登录和权限管理:

用户可以选择的元素是分组的。每个元素可以属于多个组。有些版主拥有与元素相同的组或其子集,并且他们可以编辑他们所拥有的组的所有元素。除了组之外,还有用户的权利,例如用户、版主、管理员等

在我的上一个设计中,我将用户的权限定义为组表的一部分,以便版主组中的每个用户都可以编辑他所在组的项目。

在我的第一次尝试中,我将组和权限放在一个单独的表中,并在我的应用程序中具有单独的逻辑!

将应用权限与组分开是不是更好?

如果我错过了一些东西,或者如果有人只是喜欢看图片,这里是我当前布局的图;)

http://screens.rofln.de/2012-06-19-4f3o3A.png

谢谢!

顺便说一句:如果有人想知道的话,我正在使用 PHP 和 MySql!

最佳答案

  1. 这是主观的,但如果您遵循流行的 ORM 提供的约定,那么复数似乎很常见。我认为你的选择并不重要,重要的是一旦你选择了,你就会保持一致。
  2. 代表每个选择的记录最有意义。这允许排序以及查询以查找高度评价的元素等。最后,读取应用程序中的数据并改变其显示方式将更容易,因为您将使用项目列表而不是打包的项目值。
  3. 这很难回答,因为我不熟悉您的问题领域。我建议开发用例,然后将它们应用到您提出的模型中,以查看缺陷在哪里。

关于mysql - 数据库设计: Custom data layout and rights management,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11100820/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com