Любые подсказки относительно планирования большой [закрытой] базы данных

URL определяются в RFC 3986 , хотя другие RFCs релевантны также, но RFC 1738 является устаревшим.

у Них не может быть пробелов в них, наряду со многими другими символами. Так как те запрещенные символы часто должны быть представлены так или иначе, существует схема кодирования их в URL путем перевода их в их ASCII шестнадцатеричный эквивалент с префиксом "%".

Большинство языков/платформ программирования обеспечивает функции для кодирования и декодирования URL, хотя они не могут правильно придерживаться стандартов RFC. Например, я знаю, что PHP не делает.

9
задан vmg 29 November 2015 в 23:14
поделиться

11 ответов

Не попадайтесь в ловушку, пытаясь спроектировать все заранее. Это просто невозможно. По мере развития проекта вы найдете более эффективные способы реализации уже реализованных функций. По мере того, как вы набираетесь опыта в своем проекте, вы также получаете представление о предметной области и о том, как лучше всего спроектировать базу данных.

Я бы рекомендовал применить гибкий подход. В то время дизайн немного. И когда вы видите, что то, что вы уже создали, могло быть разработано лучше, реорганизуйте его. Это касается как кода, так и схемы базы данных.

Однако одно замечание. Там, где легко реорганизовать бизнес-логику (если вы не поместите бизнес-логику в базу данных - чего вы не делаете. Верно?) После запуска приложения, рефакторинг базы данных после запуска значительно труднее, потому что вам нужно поддерживать данные. Поэтому, если вам нужно переместить одно поле из одной таблицы в другую, вам понадобятся сценарии изменения.

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

7
ответ дан 4 December 2019 в 07:48
поделиться

Рисование на диаграммах ER может помочь справиться со сложностью.

Изменить: Позвольте мне добавить, что существуют также правила / рекомендации, которые помогут преобразовать диаграммы ER в реляционную схему, и есть также инструменты, которые помогут в этом процессе.

8
ответ дан 4 December 2019 в 07:48
поделиться

При разработке схемы придерживайтесь первых нескольких нормальных форм , если вы этого не сделаете. не знаю, что ты делаешь. Скорее всего, это позволит вам вносить изменения легче, чем любой другой метод, когда вы позже поймете свои ошибки в дизайне.

Если есть сомнения, не стесняйтесь спрашивать мнение. Самый простой метод визуализации дизайна базы данных - использовать диаграммы отношений сущностей (ER-диаграммы), и это также позволяет нам легко увидеть, как выглядит ваш дизайн, не просматривая код.

8
ответ дан 4 December 2019 в 07:48
поделиться

Вы можете разделить таблицы на разные диски для ускорения доступа (я предполагаю, что mySQL может это сделать). Вы можете получить высокоскоростные диски.

Может быть, вы имеете в виду большой, много столов. Это довольно обширная тема, но вы можете начать с этого:

  • Определите первичный ключ для ваших таблиц
  • Создайте отношения между этими таблицами, определив внешние ключи
  • Создайте индексы для часто используемых полей WHERE

Некоторые разработчики которые летят мимо штанов, не делают таких вещей. Престижность для размышлений.

Visio может создавать диаграммы отношений. То же самое можно сделать с бумагой и карандашом.

Вот некоторая информация по теме моделирования данных : http://en.wikipedia.org/wiki/Data_modeling

3
ответ дан 4 December 2019 в 07:48
поделиться

Заблаговременное продумывание вариантов использования и примеров кода очень помогло мне в разработке базы данных; это хороший способ проверить целостность базы данных без написания единственного оператора SQL.

Удачи!

1
ответ дан 4 December 2019 в 07:48
поделиться

Подумайте об управлении версиями схемы. Как вы собираетесь обрабатывать изменения схемы базы данных с течением времени? Вам нужно перенести или обновить данные? Можете ли вы выбросить данные во время разработки?

С самого начала создавайте отдельные экземпляры базы данных для тестирования, постановки и прямой трансляции.

Нарисуйте много изображений.

1
ответ дан 4 December 2019 в 07:48
поделиться

Похоже, вы это уже знаете: но ассоциативные сущности ( http://en.wikipedia.org/wiki/Associative_Entities ) часто требуются для работоспособности БД.

0
ответ дан 4 December 2019 в 07:48
поделиться

Это то место, где шаблон репозитория может очень помочь, я использую этот шаблон, когда у меня есть хорошее представление о том, как я хочу, чтобы программа работала, но когда у меня нет четкого представления задействованных данных. Как правило, гораздо проще создавать / реорганизовывать фиктивные объекты, чем изменять таблицы и поддерживающие хранимые процедуры / запросы.

0
ответ дан 4 December 2019 в 07:48
поделиться

Я бы начал с соглашения об именах. Я использую * _NM (для имени) и _NUM (для чисел), V_ для представлений и т. Д.

Ничего страшного, но это действительно облегчает вашу работу, когда вы можете угадывать собственные имена таблиц и имена строк без необходимости искать их. Неважно, что вы выберете, просто убедитесь, что это разумно и последовательно. Большинство профессиональных DA используют только заглавные буквы для имен таблиц.

Лично Мне нравится использовать идентификатор для идентификаторов в каждой таблице с идентификатором (обычно это PK), а затем для отношений внешнего ключа как _ID для представления отношения. Например,

Таблица SCHOOL имеет PK идентификатора.

Таблица STUDENT имеет PK идентификатора и FK, который ссылается на таблицу SCHOOL, SCHOOL_ID.

Итак, посмотрев на таблицу учеников без каких-либо ERD, легко увидеть, что SCHOOL_ID ссылается на SCHOOL.ID, и это хорошо выглядит при чтении оператора SQL.

Что касается инструмента моделирования данных, Эрвин: http://www.ca.com/us/data-modeling.aspx

0
ответ дан 4 December 2019 в 07:48
поделиться

So, before I offer any advice on how best to design a large schema, I need to ask one question: Is a large schema absolutely necessary?

You asked if there are any good software methodologies for planning large systems. Indeed there are, and one of the best approaches to complex software development is SOA: Service Oriented Architecture. If you wish to educate yourself a bit on SOA best practices beyond the database level, I highly recommend looking into Thomas Erls books, notably his SOA: Principles of Service Design. I also highly recommend listening to some of Udi Dahan's lectures on service-oriented and domain-driven design and architectures. Lot of good knowledge to be had from both of these guys.

When it comes to databases, before you dive in and develop a very large, complex schema, make sure you really, really truly need it. In a service-oriented environment, the motivation is to identify distinct, unbreakable boundaries between the distinct services of the business problems you are trying to solve. Once you have identified these boundaries, you should find that there are smaller schemas that can be created within them. Sometimes this leads to data duplication, as information must be published from one service to another when it needs to cross boundaries. But the benefits of having several smaller, less complex schemas can be huge. You gain greater autonomy, portability, flexability, and maintainability than you have with a single monstrous schema.

Look into SOA, particularly how to handle databases in a service-oriented architecture. The following presentation given by Udi Dahan should also provide some very useful insight:

http://www.vimeo.com/5022174

0
ответ дан 4 December 2019 в 07:48
поделиться

Загрузите и создайте свою базу данных с помощью инструмента MySQL Workbench. Поможет вам создать и поддерживать базу данных.

0
ответ дан 4 December 2019 в 07:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: