Добрый вечер! Никак не могу справиться с возникшей задачей. Нужно создать базу в Экселе. Суть в том, что есть лист "База", где должны высвечиваться все работники, и листы с названием профессий ("Плотник", "Электрик" и т.д.). Можно ли с помощью Экселя сделать так, чтобы при вводе данных на одном из листов-профессий, в основную базу автоматически или одной кнопкой добавлялась информация? Другими словами, на листе-профессии я хочу видеть некоторый минимум оперативной информации о работнике, в листе "База" же нужно, чтобы были все работники, подтягивалась информация со всех листов. Если на одном из листов меняется информация о работнике, она меняется и в листе "База". Эксель 2010 Заранее спасибо за любые советы! пример.xlsx(15.29 КБ)
Не понятно для чего это нужно и желание не понятное. Может лучше наоборот, на лист База вводить полную информацию, а на отдельном листе создать сводную таблицу из базы, с отображением не полной информации. Иначе как с листов -профессии
Цитата
на листе-профессии я хочу видеть некоторый минимум оперативной информации о работнике,
будет подтягиваться полная информация (Город; ключи) которой там нет. Сводных можно создать несколько, отдельно по каждой профессии, и разместить на листы.
Fed-Di написал:Если на одном из листов меняется информация о работнике, она меняется и в листе "База"... Можно ли с помощью Экселя автоматически или одной кнопкой?
или изучать запросы-sql через Подключения (вкладка Данные), или писать макрос...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Такую задачу можно реализовать с помощью плагина SaveToDB. Логика следующая: есть одна (!!!) таблица с данными, в которой есть все поля(столбцы) для всех профессий, есть несколько листов-представлений этой таблицы с обрезанными столбцами. Плагин даст возможность не только смотреть на одну таблицу разными листами, но и редактировать ее, добавлять/удалять строки если это надо.
TheBestOfTheBest написал: реализовать с помощью плагина SaveToDB
есть свои нюансы (для многих полезных функций - ради которых интересно бы потестить):
Цитата
Требуется поддержка и настройка на стороне сервера, например, за счет установки SaveToDB Framework
но если есть смысл в разграничении прав доступа к базе - то, наверно, есть смысл хранить её на сервере... а организовывать сервер для нескольких файлов - я вот, например, до сих пор не могу найти мотивацию и смысл... не знаю, как разглядеть преимущества в том или ином способе обращения с БД (на начальных порах сложно разглядеть свои плюсы и свои минусы)... p.s. видимо, не совсем free... т к даже personal-версия имеет цену... хотя, вроде, предлагают потом просто зарегистрировать express-версию... но пока не понятно, даст ли это ожидаемый эффект... удобства, комфорта и уюта в работе с БД небольшого размера... p.p.s. возможность плагина подгружать json-файлы - интересный пункт, с которым не справляется сам (без макроса) xl ... (по крайней мере у меня)... остальное, вроде бы, и в xl можно реализовать, если продумать "верный" подход к БД p.p.p.s за совет спасибо
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Вообще не то советовал. Про сервер речи не было, в полном понимании сервера. Вся база выполняется на MS SQL Server Compact, который не требует никаких дополнительных серверов. Доступ разграничивать не требуется, нет смысла, можно данные запаролить, но это больше для понта, чем для защиты. Смысл предложения в том, чтобы делать несколько представлений одной таблицы (не сводной) на базе Excel и плагина. Плагин имеет бесплатную версию, требует регистрации. Этой версии хватит для большинства ваших задач.
TheBestOfTheBest написал: Вообще не то советовал... Вся база выполняется на MS SQL Server Compact, который не требует никаких дополнительных серверов.
как до него добраться хотя бы, не подскажете?.. давно не могу найти... вижу в Programme Files папку с таким названием, а в ней v.3.1 и v.3.5, а в них куча dll - и никакого интерфейса... как бы базу сделать на таком Compact? намекните please, где искать (или скрином или линком)?.. ... насколько поняла - его надо ещё и установить - Установка Microsoft SQL Server Compact 3.5
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Последняя версия - 4.0, если установить плагин, Compact будет установлен по умолчанию. Это действительно несколько dll, которые запускаются при старте Windows. Они обеспечивают доступ через ODBC к файлу/ам *.sdf, для более глубокого ковыряния sdf я использую Visual Studio 2010
TheBestOfTheBest написал: реализовать с помощью плагина SaveToDB... Вся база выполняется на MS SQL Server Compact, который не требует никаких дополнительных серверов.
да, действительно, а я и не заметила - Подключение к Microsoft SQL Server (плагин SaveToDB) - "Плагин SaveToDB к Microsoft Excel позволяет подключаться к таблицам, представлениям и хранимым процедурам всех версий Microsoft SQL Server"
Скрытый текст
репост: Сразу скажу, что про подключение через ODBC можно забыть - Microsoft его не поддерживает Поэтому остаются OLEDB провайдеры. к Microsoft SQL Server и в макросе можно подключиться - строкой (Для Microsoft SQL Server Compact Edition v3.5)
Код
cn = CreateObject("ADODB.Connection")
cn.Open("Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Samples\northwind.sdf")
Кстати, файлы баз данных (.sdf) от разных версий могут быть несовместимы
Если не подключается (пишет, что провайдер не найден), значит он не зарегистрирован Для Microsoft SQL Server 2005 Mobile Edition - sqlceoledb30.dll Для Microsoft SQL Server Compact Edition v3.5 - sqlceoledb35.dll
То есть находим у себя соответствующий файл и делаем ему regsvr32
По поводу установки Compact Edition можно почитать
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
MS SQL Server Compact, в отличие от MS SQL Server, не поддерживает хранимые процедуры. Соответственно и плагин тоже. Вообще, MS SQL Server, MS SQL Server Compact и SaveToDB разные комплексы. Если MS SQL Server Compact достаточно установить и описать в ODBC, то SaveToDB - это надстройка, которая может управлять разными серверами, в т.ч. и MS SQL Server и MS SQL Server Compact и фриваре.
TheBestOfTheBest написал: MS SQL Server Compact достаточно установить и описать в ODBC
если кто-нибудь заглянет в ветку - черканите please КАК?.. regsvr32??.. но как это делается... без установки SaveToDB... я пока попробую здесь посмотреть
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Установила с линка выше ... Сделала через коммандную строку: regsvr32 "C:\Program Files\Microsoft SQL Server Compact Edition\v4.0\sqlceoledb40.dll" не помогло
Код
Sub Connect_SQL_ServerCE35()
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
cn.ConnectionString = ("Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source=E:\NEW docs\Northwind.sdf")
cn.Open
Set Db = CreateObject("ADOX.Catalog")
Db.ActiveConnection = cn
For i = 0 To Db.Tables.Count - 1
Debug.Print Db.Tables(i).Name
NextDebug.Print Now
End Sub
это код работает для 3.5 Sample-файл ... но при поправке на 4.0 и на файл сделанный для 4.0 и с добавкой ";Password=text""- не работает... хотя отсюда -SQLite & SQL Server Compact Toolbox extension - подключение устанавливается - правда строку Подключения нигде не взять... ?? p.s. в VS2010 - тоже не появляется 4.0 - но это ещё можно понять - нет обновления SP1
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
ошибка кстати - какая-то длинная - "произошли ошибки во время выполнении многошаговой операции oledb - по возможности проверьте значения всех состояний OLEDB. Работа не выполнена" - так звучит p.s. даже так поставила: "SSCE:Database Password=text" и .Mode=3 и .CursorLocation=3 ... никак... и даже одинарные кавычки вокруг text пробовала...
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
При переходе на версию 4.0 автоматом пере форматируется файл базы данных и вернуться на 3,5 уже невозможно, будьте бдительны!
SQLServerCE 4.0 был где-то установочный пакет, попробуйте его (см. картинку).
Но это сейчас не актуально уже. Переходите на SQLLocalDB, он полностью поддерживает объекты SQL server'а до версии 2016 (вроде) в последующих версиях отказались от LocalDB, т.к. LocalDB поставляется только с версиями Express.
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
TheBestOfTheBest написал: Переходите на SQLLocalDB, он полностью поддерживает объекты SQL server'а до версии 2016 (вроде) в последующих версиях отказались от LocalDB, т.к. LocalDB поставляется только с версиями Express.
упс, уже и тут отказались ... хотя если руки дойдут - то Express и буду смотреть... TheBestOfTheBest спасибо! за ликбез
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi написал: даже так поставила: " SSCE:Database Password=text " и .Mode=3 и .CursorLocation=3 ... никак...
вот после этого до строки DB.Tables уже дохожу (cn.Open пропускает)... но DB.Tables.Count=0 и ошибка такая же - про многошаговую операцию... он (код), наверно, думает "тише едешь - дальше будешь"
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
(мой #13) и SELECT * FROM tbl_uslugi выполняется - перепроверила сейчас... спасибо за беспокойство... просто интересно без SaveToDB поюзать .sdf... но макрос из Excel останавливается, на цикле (как описала в предыдущем посту) - строка #8 из кода выше
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
отловила - нагородила всех свойств, что только смогла...
Код
Sub Connect_SQL_ServerCE()
Dim cn As Object
cn = CreateObject("ADODB.Connection")
With cn
.ConnectionString = "Provider=Microsoft.SQLSERVER.CE.OLEDB.4.0;Data Source=E:\NEW docs\Услуги20.sdf;SSCE:Database Password=" & Sheets("Лист1").[b2].Value & ""
Debug.Print .ConnectionString
.CursorLocation = 3 'adUseClient
.Mode = 3 'adModeReadWrite
.Open
End With
Set rs = CreateObject("ADODB.Recordset")
rs.LockType = 3
sSql = "SELECT [Код] FROM [tbl_uslugi]"
rs.Open sSql, cn, adOpenStatic
Arr = rs.GetRows
rs.Close
cn.Close
End Sub
но если заголовок поля состоит из 2х слов - тогда вылазит та ошибка... на известном вам, TheBestOfTheBest, файле - поэтому и названия столбцов и таблиц из него... вобщем как-то так
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi написал: но если заголовок поля состоит из 2х слов - тогда вылазит та ошибка...
проверила всё - некоторые 2-словные заголовки столбцов проходят, что-то нет... вобщем не в этом суть... просто вывод: есть альтернативные способы ковырять sdf - что вобщем-то и хотела найти... спасибо и за ваши идеи p.s. зная строку подключения - запросы и в DbConsole можно просмотреть
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
TheBestOfTheBest написал: Переходите на SQLLocalDB, он полностью поддерживает объекты SQL server'а до версии 2016 (вроде) в последующих версиях отказались от LocalDB, т.к. LocalDB поставляется только с версиями Express.
смущает меня кстати в LocalDB (даже 2012) - его memory-share подключение вместо TCP/IP... при небольших размерах БД - видимо терпимо, а что делать потом... нет уж лучше нормальный SQL Server Express... но тоже: придётся и VisualStudio 2011 ставить, т.к. 2010(да ещё и не SP1) не даст создавать dbo2012 (только 2005/2008), а без него - SSMS Complete (50usd) - чтобы создавать dbo-файлы и править их, если всё равно стоит vs - как-то всё разбросано будет, да и не факт что понравится... а связываться с полноценным Сервером - тоже пока знаний поднасобирать надо... да и на настольном пк - хоть самолётом обзови, думаю, всё равно не взлетит по скорости - на таком-то железе, да ещё 32-й системе... то ли дело серверный винт (или хостинг, на облако вряд ли - просто вариант)... имхо - вот такие опасения о потерянном времени и загрузке памяти пока что p.s. пока стоит vs2010 - может и dbo(2008) посмотрела бы, чтоб познакомиться, обкатать, - но движок и драйвер (#67) всё равно устанавливать придётся - знать бы ставятся ли они без самого сервера?.. чтобы из эксельки поковырять?... .sdf CompactEdition уже установили чуть выше и подключились - оказалось не сложно... а для доступа к dbo (2008 пока в силу возможностей текущих) - пока не знаю, как достучаться..... буду думать, может созрею ... Или найду какого простенького клиента БД?
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
вообще-то подключается к мастеру (который лежит в C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA\master.mdf)
Код
Sub Connect_SQL_Server()
Dim cn As Object
Set cn = CreateObject("ADODB.Connection")
With cn
.ConnectionString = "Provider=SQLOLEDB;Data Source=WIN-...........\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=master"
Debug.Print .ConnectionString
.CursorLocation = 3 'adUseClient
.Mode = 3 'adModeReadWrite
.Open
End With
Debug.Print cn.ConnectionString
cn.Execute ("INSERT INTO Table1(column_1, column_2) VALUES (12, 0)")
ThisWorkbook.Sheets("Лист1").[A1].CopyFromRecordset cn.Execute("SELECT * FROM Table1")
cn.Close
End Sub
значит и Server Express установился с VS2010 когда-то... p.s. всё: создала тестовую бд! - в ней таблицу - потом: -> Build-> Publish... (только в свойствах проектнойБД проставить имя сервера и выбрать Развёртывание после создания файла развёртывания)... и вуаля: оказалось тоже несложно... горизонты открыты, из xl подключение и заполнение бд настраивается макросом... вот и простенький клиент через ADO... P.P.S но в качестве IDE всё-таки VisualStudio
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
А как будет выглядеть код с UPDATE или MERGE? Проблема как раз не считать/добавить, а обновить. т.к. серверу требуется указать id строк. Как мы определим какие строки надо апдейтить, а какие нет?
TheBestOfTheBest написал: А как будет выглядеть код с UPDATE или MERGE? Проблема как раз не считать/добавить, а обновить. т.к. серверу требуется указать id строк
1) а Update с вложенным Select'ом не сработает разве - на условном примере
Код
UPDATE
BOX a INNER JOIN (SELECT ID, Cur FROM Box IN "D:\Base1.mdb") b ON
a.ID = b.ID SET a.PREDID = b.Cur
2) или как-то так (на условном примере)
Код
UPDATE OPT, ITM SET OPT.ITM = ITM.ITM, OPT.TV = ITM.TV
WHERE (OPT.tradeDate = ITM.tradeDate) AND (OPT.TK= ITM.TK) AND (OPT.settlementDt = ITM.settlementDt)
AND (OPT.strike= ITM.strike) AND (OPT.type= ITM.type)
допустим OPT - табл из БД, ITM - клиентская табл (в xl)... хотя да это не вариант - уже вижу - подключение к разл. источникам здесь... ===== 3) Тогда через ADO Join'ом ... -- условные примеры SQL
Код
e.g. UPDATE Results AS A INNER JOIN [SELECT ShortNameR,Name FROM Result
IN "C:\2.mdb"]. AS B ON (A.Name =B.Name) AND
(A.ShortNameR=B.ShortNameR) SET A.VOl_R = B.Vol_R;
e.g. : UPDATE tblAddress INNER JOIN tblZipCodes ON
[tblAddress].[ZipCode] = [tblZipCodes].[ZipCode]
SET [tblAddress].[City] = [tblZipCodes].[City], [tblAddress].[State] =
[tblZipCodes].[State] WHERE ([Country] = 'US')
4) или перебор строк xl'я и Update RS'а от Server'a -- думаю так - но не тестила ещё... 5) а есть и ход конём: загнать данные xl'я на сервак отдельной табл
Код
SELECT q_ITM.* INTO ITM FROM q_ITM
-- и там на месте джойнить, что хочется ... ИЛИ вы предложите альтернативный вариант ? (как вариант)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
JeyCi написал: P.P.S но в качестве IDE всё-таки VisualStudio
оно судя по всему, вероятно, ещё и в качестве CASE может использоваться??.. не знаю насколько продуктивно??.. хм... хотя есть нюансы: Microsoft извлек уроки из опыта индустрии, и планирует избежать подводных камней CASE - не понятно есть ли нормальный CASE в Visual Studio, или нет -- и нужен ли при моделировании... (или это уже прошлый век?) p.s. кстати хорошую книгу полистала (рекомендую всееем начинающим) - если найдёте (в сети не вижу - а то бы оставила линк) -- но мне понравилась, как Дающая выбор структуры данных, для использования в проектировании бд (Модели Данных - иерархические, сетевые, ER, многомерные, ООМД, ОРМД)... хоть в книге примеры и скрины из Power Designer в качестве CASE-средства -- но все основы Проектирования разложены по полочкам, как для меня - чтобы наконец осмысленно выбирать , что нравится, -- помимо уже пройденного (массивы, словари, коллекции) для более ресурсоёмких задач (деревья, графы, ER, Dimensions).... Хранилища данных и Аналитики... и конечно же про этапы проектирования... - вобщем очень интересно для разграничения понятий и новых терминов... даже почувствовала себя более подкованной после прочтения (пролистывания)... ! Проектирование баз данных : учебное пособие для студентов вузов /Л. В. Рудикова . – Минск : ИВЦ Минфина, 2009 спасибо автору ! - теперь есть из чего выбирать - с пониманием ! - хотя дома держать сервер всё-равно как-то не comme ils faut... имхо... для рабочих моментов
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
TheBestOfTheBest написал: Как мы определим какие строки надо апдейтить, а какие нет?
по первичному ключу p.s. ещё мне кажется по логике подходов можно рассмотреть пару вариантов: 6)
Код
BEGIN TRANSACTION
Conclude a transaction by committing all work performed during the transaction.
COMMIT [TRANSACTION | WORK]
Conclude a transaction by rolling back all work performed during the transaction.
ROLLBACK [TRANSACTION | WORK]
были и на планете примеры транзакций через ADO - BeginTrans (правда, вставка) и пример Begin Transaction - PQ ... если проставлять по ходу изменений в доп столбце xl пометку об изменениях - то можно как-то так (чтобы не лопатить весь сервер - по выбранному сиолбцу ) (можно через Application.InputBox дописать в начале выбор) :
Код
'подключение см. выше...
Set RS = CreateObject("ADODB.Recordset")
RS.LockType = 3 ' adLockOptimistic
sSql = "SELECT * FROM tblMyDone "
RS.Open sSql, cn, adOpenKeyset
changeToDB = Sheets(1).[A1].CurrentRegion.Value
cn.BeginTrans
For i = LBound(changeToDB, 1) + 1 To UBound(changeToDB, 1) 'без шапки
Select Case changeToDB(i, 5)
Case "CHANGED"
RS.MoveFirst
RS.Find "column_1=" & changeToDB(i, 1) & "" ' Find Primary Key
RS.Fields(NName).Value = changeToDB(i, N) ' Change data in edit buffer
End Select
Next
' RS.Update
If MsgBox("Update all changes?", vbYesNo) = vbYes Then ' Prompt user to "Use Update to replace the original data with the buffered data in the Recordset"
RS.Update
Else
RS.CancelUpdate
End If
' cn.RollbackTrans
If MsgBox("Save all changes to DB?", vbYesNo) = vbYes Then ' Prompt user to commit all changes made
cn.CommitTrans
Else
cn.RollbackTrans
End If
RS.Close
cn.Close
==========или
changeToDB = Sheets(1).[A1].CurrentRegion.Value
For i = LBound(changeToDB, 1) + 1 To UBound(changeToDB, 1) 'без шапки
Select Case changeToDB(i, 5) '<<<<< (acc. CHG)
Case "CHANGED"
cn.Execute "UPDATE tblMyDone SET " & NName & " = " & changeToDB(i, N) & " WHERE column_1 = " & changeToDB(i, 1) & ""
End Select
Next
cn.Close
7) подумать на самом сервере - Stored Procedures как запускать из xl?.. ИЛИ лучше ADO команду с параметром (как замена хр.проц.сервера) выполнить со стороны клиента (NName - столбец по которому изменения, column_1 primary key):
Код
'подключение см. выше...
changeToDB = Sheets(1).[A1].CurrentRegion.Value
Set cmd = New ADODB.Command
cmd.ActiveConnection = cn
cmd.CommandText = "UPDATE tblMyDone SET " & NName & " = ? WHERE column_1 = ?"
cmd.CommandType = adCmdText
For i = LBound(changeToDB, 1) + 1 To UBound(changeToDB, 1)
cmd.Execute Parameters:=Array(changeToDB(i, N), changeToDB(i, 1))
Next
Set cmd = Nothing
cn.Close
p.s. хотя честно говоря, ещё ничего не тестировала... т.к. 1-ое с чем считаю важным познакомиться при старте осваивания инструментов Visual Studio - это развернуть тестовуюБД (уже нашла кнопки), И ! Индексация и ! тест ! скорости выполнения запросов при данной Индексации (чтобы если не ускоряют - удалить индексы - надо освоить тесты)... и вообще мне кажется, что основная работа по созданию БД - это после проектирования, создания и загрузки всех данных, - прогон всех тестов на целостность и скорость работы БД - наверно, занимает больше всего времени... имхо... потом раздать права доступа админу, начальству и юзерам... и потом периодически тестировать скорость при настроенной индексации "по полям объединения и фильтрации" и первичным ключам в обязательном порядке (по мере заполнения бд)
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)