Проблема дизайна MySQL - PullRequest
0 голосов
/ 24 июня 2011

Я пытаюсь нормализовать свою базу данных, но у меня болит голова, чтобы справиться с этим.Я занимаюсь разработкой CMS, где пользователи Facebook могут создавать страницы на моем сайте.Пока это то, что у меня есть

page
----
uid            - PK AI
slug           - Slug URL
title          - Page title
description    - Page description
image          - Page image
imageThumbnail - Thumbnail of image
owner          - The ID of the user that created the page
views          - Page views
timestamp      - Date page was created

user
----
uid  - PK AI
fbid - Facebook ID
(at a later date may add profile options i.e name, website etc)

tags
----
uid - PK AI
tag - String (tag name)

page_tag
--------
pid - Page id (uid from page table)
tid - Tag id (uid from tag table)

page_user
---------
pid - Page id (uid form page table)
uid - User ID (uid from user table)

Я пытался отделить столько информации, сколько нужно, не выходя за рамки.Я создал отдельную таблицу для тегов, потому что не хочу, чтобы имена тегов повторялись.Если база данных содержит более 100 000 страниц, повторяющиеся теги, без сомнения, увеличат объем памяти и ускорят ее.

Есть ли проблемы с дизайном?Или я что-то не так делаю?Я помню, как изучал это в университете, но с тех пор я очень мало занимался проектированием баз данных.

Я бы предпочел сделать это правильно с первого раза, а потом испытывать головную боль.

1 Ответ

1 голос
/ 24 июня 2011

выглядит хорошо для меня.Насколько это может быть плохо с пятью таблицами?

У вас есть пользователи, страницы и теги.Пользователи могут иметь много страниц;на страницы могут ссылаться многие пользователи.Страница может иметь много тегов;тег может быть связан со многими страницами.

Подводит итог для меня.Я бы не волновался об этом.

Ваша следующая проблема - индексы.Вам понадобится индекс для каждого предложения WHERE, которое вы будете использовать для запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...