gpt4 book ai didi

php - 创建数据库表的最佳方法是为不同的用户提供不同的列

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

我正在尝试为申请表创建一个数据库表,其中包含 70 - 80 个字段,即 70 - 80 个表列。

此表适用于多个客户端,但在 80 个字段中,近 30 个字段对于每个用户来说都是相同的,其余的字段将针对每个用户进行更改。

注意:每个客户下都会有多个填写该申请表的用户。

我想用两种方式创建表格。

第一个:

第一个表包含所有用户的相同字段[sno,firstname,lastname,..] ->第二个表包含 4 列[sno, field_name, value, users_id]

第二个:

第一个表将包含所有列,无论用户如何(这意味着我将在单个表中添加所有客户端列)在第二个表中,我将维护 user_id 以及与其关联的相应列。

这是最好的方法,如果还有其他最好的方法,请告诉我。

所有客户的通用字段:个人详细信息、家庭详细信息、教育详细信息等

还有一些其他细节因每个客户而异

最佳答案

处理此类设计的最佳方法是使用 EAV 概念。

EAV:实体属性值

你需要制作几张 table :

users (id, create_date, status)

attributes(id, title, status) // it will contains all attributes like firstname, lastname, etc etc)

attribute_to_users (id, attribute_id, user_id, attribute_value) // it will contain attribute value with respect to attribute and user

例如:

attribute_to_users (1, 1, 1, Naveed)
attribute_to_users (1, 2, 1, Ramzan)

这意味着对于同一用户,attributeId:1(名字)值为 Naveed,对于第二个 attributeId(姓氏)值为 Ramzan

与 Drupal 和 magento 相同。

关于php - 创建数据库表的最佳方法是为不同的用户提供不同的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38420935/

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