我正在试图找出在php / mysql网站上存储用户数据的最佳做法。 假设该网站将提供一项服务,以节省人们对他们家中物品的输入。 我设置的桌子包括:厨房,浴室,卧室等。 莎莉添加了她的6件厨房用品。 约翰补充了他的3件厨房用品。 等
我只是想知道在mysql数据库中存储其他用户信息的常见做法。我参加了一个关于数据库的课程,所以我想通过外键,john与他在列表中的项目进行关联连接,以及sally ...
这听起来是对的吗?或者,还有更好的方法?我可以很快看到列表变得非常大。
是否可以为每个用户设置不同的表?那可能吗?还是傻乎乎的?
答案 0 :(得分:0)
我会使用三个表:
rooms (id, room)
,用于存储值kitchen, bathroom, bedroom
等。users
items
:假设你有一个共同的结构,你当前的厨房,浴室,卧室桌子,一张桌子可以取代所有这些。此表还应包含两个外键user_id
和room_id
。使用该结构,您可以轻松检索和过滤数据。
答案 1 :(得分:0)
我不会为每个用户设置一个表。
绝对是关系型的。我不确定我是否完全跟随你“约翰和他的物品......”等等。所以我把它解释为
user table
room table
item table
relational user->item (id, user_id, item_id, room_id) OR:
relational item->room
因此,您可以拉取用户,列出他们与之相关的房间,然后列出该房间中的项目。此外,像这样你不需要一个新的项目条目用于常见的东西,如桌子,炉子,刮刀等。
您的列表可能会变大,但如果您正确扩展并在绝对需要时(如数百万用户)计划基于后端的更新迁移,那么您应该没问题。考虑像facebook和ebay这样的关系网站必须维护多少。数据库的大关系是正常的,所以我不会让几百万行吓到你。